2012-01-05 64 views
6

我想從DataTable中獲取所有列值並將其存儲到ListBox中。這裏是我的代碼從DataTable中獲取值

  If myTableData.Rows.Count > 0 Then 
       For i As Integer = 0 To myTableData.Rows.Count 
        Dim DataType() As String = myTableData.Rows(i).Item(1) 
        ListBox2.Items.AddRange(DataType) 
       Next 
      End If 

但是當我編譯的代碼,我得到了這樣的錯誤消息:

Unable to cast object of type 'System.String' to type 'System.String[]' 

那麼,如何解決這個問題?請幫我....

回答

10

,您可以嘗試更改爲此:

If myTableData.Rows.Count > 0 Then 
    For i As Integer = 0 To myTableData.Rows.Count - 1 
    ''Dim DataType() As String = myTableData.Rows(i).Item(1) 
    ListBox2.Items.Add(myTableData.Rows(i)(1)) 
    Next 
End If 

注意:你的循環需要比行數少了一個,因爲它是一個從零開始的索引。

+0

yapp,我想念那部分:D 感謝您的幫助 – Flashidkz 2012-01-05 17:56:47

4

它看起來像你不小心宣佈DataType作爲一個數組而不是一個字符串。

更改線路3:

Dim DataType As String = myTableData.Rows(i).Item(1) 

這應該工作。