發生這種事,只能說自己真的學藝不精,才會被這個小狀況困擾半天,白白浪費不少工時。
話說今天在嘗試Bind資料到Chart上面,但出現了一個怪事,程式大致示意如下:
using (SqlConnection cn = new SqlConnection(xxx.ConnectionString))
{
SqlCommand SQLCmd = cn.CreateCommand();
SQLCmd.CommandText = "select A as sString,B as iInteger1,C as iInteger2 from xxxx";
cn.Open();
chart1.Series[0].YValuesPerPoint = 2;
using (SqlDataReader dr = SQLCmd.ExecuteReader())
{
chart1.Series[0].Points.DataBindXY(dr, "A", dr, "B,C");
}
............
chart1.Series[0].Legend = chart1.Legends[0].Name;
chart1.Series[0].IsValueShownAsLabel = true;
chart1.Series[0].Label = "數字1 : #VALY 數字2 : #VALY2";
chart1.Series[0].LegendText = "#VALX";
chart1.DataBind();
SQLCmd.Dispose();
}
這段基本上,就是當User按了按鈕後,就從資料庫撈了三個欄位的資料,A是字串型別,B和C是數字型別,各自將參數Bind到圖表上,但~怪事發生了。
Series上的數字都出現了,但~Series[0].Legend的文字全部顯示為0?!!(註:Y和Y2的數字都有出現,唯獨X的沒有正常,皆出現0)
但奇怪的是,若把這段程式移到Page_Load下去運作,卻又是正常的,所有的資料都到位(X的有出現,皆正常出現文字)啊?!!為何用Button去Click就不行?
----------解決的分隔線----------
其實,在開頭就說明了,這個真的是個小事,只能說自己學藝不精啊啊啊啊~
只要加這一行就可以了。
chart1.Series[0].XValueType = ChartValueType.String;
是的,因為XValueType預設是"AUTO",我只能說這個偵測型別(Auto)還真的難懂啊~
分享給大家知道囉~:)
話說今天在嘗試Bind資料到Chart上面,但出現了一個怪事,程式大致示意如下:
using (SqlConnection cn = new SqlConnection(xxx.ConnectionString))
{
SqlCommand SQLCmd = cn.CreateCommand();
SQLCmd.CommandText = "select A as sString,B as iInteger1,C as iInteger2 from xxxx";
cn.Open();
chart1.Series[0].YValuesPerPoint = 2;
using (SqlDataReader dr = SQLCmd.ExecuteReader())
{
chart1.Series[0].Points.DataBindXY(dr, "A", dr, "B,C");
}
............
chart1.Series[0].Legend = chart1.Legends[0].Name;
chart1.Series[0].IsValueShownAsLabel = true;
chart1.Series[0].Label = "數字1 : #VALY 數字2 : #VALY2";
chart1.Series[0].LegendText = "#VALX";
chart1.DataBind();
SQLCmd.Dispose();
}
這段基本上,就是當User按了按鈕後,就從資料庫撈了三個欄位的資料,A是字串型別,B和C是數字型別,各自將參數Bind到圖表上,但~怪事發生了。
Series上的數字都出現了,但~Series[0].Legend的文字全部顯示為0?!!(註:Y和Y2的數字都有出現,唯獨X的沒有正常,皆出現0)
但奇怪的是,若把這段程式移到Page_Load下去運作,卻又是正常的,所有的資料都到位(X的有出現,皆正常出現文字)啊?!!為何用Button去Click就不行?
----------解決的分隔線----------
其實,在開頭就說明了,這個真的是個小事,只能說自己學藝不精啊啊啊啊~
只要加這一行就可以了。
chart1.Series[0].XValueType = ChartValueType.String;
是的,因為XValueType預設是"AUTO",我只能說這個偵測型別(Auto)還真的難懂啊~
分享給大家知道囉~:)
全站熱搜
留言列表