2012-01-05 11 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 

注:あなたのループは、ゼロベースのインデックスですので、行数よりも1以下であることが必要です。

+0

yapp、私はその部分が恋しい:D ありがとうございました – Flashidkz

4

DataTypeが誤って文字列ではなく配列として宣言されたようです。動作するはず

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

:へ

変更ライン3。

関連する問題