weixingjo 2013-07-02 06:04 采纳率: 100%
浏览 3573
已采纳

chart组件绑定数据(DataBindTable)后无法显示曲线或不能显示所有Series

我用vs2010编写的一个小工具,在利用vs2010附带的chart生成图表时出现无法解决的疑问。databindtable在绑定数据时总是会出现无法显示曲线或者无法绑定的问题,如下描述:

数据库结构:
CSDN移动问答

列名 数据类型 是否可为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么?
CSDN移动问答

然而 ,如果我将id 排除后,即sql的语句变为

Dim str As String = "SELECT   value, Hum, time AS t FROM  Test   WHERE  mac_id = 101 ORDER BY t"

执行后,获得的chartAreas 区域却是一片空白 !!

请问,这种情况是否正常,如何解决问题?

  • 写回答

1条回答 默认 最新

  • weixingjo 2013-07-05 02:46
    关注

    找到原因了,Y轴的值不能为value,只能为数字型,所以隐性的转换是无效的。在原sql连接字符中需要进行修正: Dim str As String = "SELECT cast(value as numeric ) as V, CAST(ISNULL(Hum, 0) AS numeric) AS H, time AS t FROM Test WHERE mac_id = 101 ORDER BY t" 这样就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题