我用vs2010编写的一个小工具,在利用vs2010附带的chart生成图表时出现无法解决的疑问。databindtable在绑定数据时总是会出现无法显示曲线或者无法绑定的问题,如下描述:
数据库结构:
列名 数据类型 是否可为NUll
id int型 主键标识 false
mac_id int false
value varchar(MAX) true
Hum varchar(MAX) true
time smalldatetime 主键 false
两个主键id和time,其中id为标识序列。
测试用的数据如下。
id mac_id Value Hum time
1 101 20 NULL 2013/6/1 0:00:00
2 101 30 10 2013/6/2 0:00:00
3 102 40 10 2013/6/2 0:00:00
4 101 40 15 2013/6/3 0:00:00
5 102 50 20 2013/6/3 0:00:00
6 101 60 20 2013/6/4 0:00:00
代码块:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Chart1.Series.Clear()
Using cnn As New SqlConnection("Data Source=my-PC\SQLEXPRESS;Initial Catalog=master;Integrated Security=True")
Dim str As String = "SELECT id ,value, Hum, time AS t FROM Test WHERE mac_id = 101 ORDER BY t"
Dim cmd As New SqlCommand(str, cnn)
cnn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader
Me.Chart1.DataBindTable(reader, "t")
reader.Close()
cnn.Close()
For Each x In Me.Chart1.Series
x.ChartType = DataVisualization.Charting.SeriesChartType.Spline
Next
End Using
End Sub
运行后结果却只有一条id的。根据databindtable的定义不是应该有id ,value, Hum三条Series么?
然而 ,如果我将id 排除后,即sql的语句变为
Dim str As String = "SELECT value, Hum, time AS t FROM Test WHERE mac_id = 101 ORDER BY t"
执行后,获得的chartAreas 区域却是一片空白 !!
请问,这种情况是否正常,如何解决问题?