DataTableからすべての列の値を取得し、それをListBoxに格納したいと考えています。これが私のコードです
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[]'
だから、この問題を解決するにはどうすればいいですか?私を助けてください....
これを次のように変更してみてください。
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つ少なくする必要があります。
DataType
を誤って文字列ではなく配列として宣言したようです。
3行目を次のように変更します。
Dim DataType As String = myTableData.Rows(i).Item(1)
うまくいくはずです。