程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> .net-chart組件綁定數據(DataBindTable)後無法顯示曲線或不能顯示所有Series

.net-chart組件綁定數據(DataBindTable)後無法顯示曲線或不能顯示所有Series

編輯:編程綜合問答
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 區域卻是一片空白 !!

請問,這種情況是否正常,如何解決問題?

最佳回答:


找到原因了,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" 這樣就可以了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved