2016-02-01 41 views
1

我想繪製一個圖形,在X軸上應該顯示一些生產線的名稱,在Y軸上顯示行停止的總時間(EG:110: 43:00h)但我有一些問題。 這裏是我的代碼:在vb.net上繪製小時和分鐘Y軸

Dim cmd As New MySqlCommand 
Chart2.Series.Add("Stops") 
Try 
    ConnectDatabase() 
    With cmd 
     .Connection = conn 
     .CommandText = "SELECT X as lines, time_format(SEC_TO_TIME(SUM(abs(TIME_TO_SEC(timediff(Y, Z))))),'%H:%i:%s') AS SUM FROM M, N WHERE a = b GROUP BY P" 
    End With 
    Dim objReader As MySqlDataReader = cmd.ExecuteReader 
    While objReader.Read 
     Chart2.Series("Stops").Points.AddXY(objReader("lines").ToString, objReader("SUM").ToString) 
    End While 
Catch ex As Exception 
    If ex.InnerException IsNot Nothing Then 
     MsgBox(ex.InnerException) 
    End If 
End Try 
DisconnectDatabase() 

MySQL查詢是正確的,我可以正確地看到X軸,但在Y軸沒有出現,它不繪製任何東西。 你能幫忙嗎?我究竟做錯了什麼?

還有的SUM的樣子打印: enter image description here

感謝。

更新:問題已解決。在選擇查詢中,我只需選擇小時數據。

+0

這將有可能看到查詢結果的結構?我只是想知道是否因爲SUM是一個關鍵字,如果這是拋出一個問題。一個快速測試將是將其改爲SUM以外的其他內容,並修復系列參數以反映更改。 –

+0

我做了一個測試,並改變了軸,我的意思是,我把SUM放在X軸上,Y軸放在線上。 SUM出現並且名稱行號爲。所以問題需要在Y軸上,但我不明白爲什麼... – vallete7

+0

所以一個典型的SUM結果會像'110:43:00h'?因爲它正在尋找一個數值。如果這代表110小時43分鐘,你可能需要把它變成代表110.72的數字,即110.72小時或110小時和43/60小時。 –

回答

0

使您的y值數字而不是字符串。

變化

Chart2.Series("Stops").Points.AddXY(objReader("lines").ToString, objReader("SUM").ToString) 

Chart2.Series("Stops").Points.AddXY(objReader("lines").ToString, Double.Parse(objReader("SUM").ToString)) 
+0

我試過這個解決方案,但沒有工作 – vallete7

+0

看看這個解決方案http://stackoverflow.com/questions/6624066/how-to-set-values-in-x-axis-mschart-using-c-sharp – djv

相關問題