2012-01-05 69 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) 

这应该工作。