数据集中的多维数组赋值

时间:2011-06-15 06:15:51

标签: vb.net arrays dataset multidimensional-array

我正在尝试下面提到的代码。虽然它适用于单维数组。如何使它与二维数组一起工作?

Dim arrayord(,) As String = {ds.Tables(0).Rows(3).ItemArray, ds.Tables(0).Rows(23).ItemArray}

但它会引发以下错误。

错误8“类型的一维数组的一维数组”类型的值不能转换为“二维数组的字符串”,因为“对象的一维数组”不是从'派生的'字符串”

1 个答案:

答案 0 :(得分:0)

Dim dtb1 As New DataTable("Table1")
dtb1.Columns.Add(New DataColumn("Column1", GetType(Integer)))
dtb1.Columns.Add(New DataColumn("Column2", GetType(Integer)))
dtb1.Columns.Add(New DataColumn("Column3", GetType(Single)))
dtb1.Columns.Add(New DataColumn("Column4", GetType(String)))
dtb1.Columns.Add(New DataColumn("Column5", GetType(String)))
dtb1.Rows.Add(1, 1, 1.1, "1", "5")
dtb1.Rows.Add(2, 2, 2.2, "2", "4")
dtb1.Rows.Add(3, 3, 3.3, "3", "3")
dtb1.Rows.Add(4, 4, 4.4, "4", "2")
dtb1.Rows.Add(5, 5, 5.5, "5", "1")
dtb1.Rows.Add(11, 11, 11, "11", "11")

Dim strOutput(dtb1.Rows.Count - 1, dtb1.Columns.Count - 1) As String '(row,col)
For intRow As Integer = 0 To dtb1.Rows.Count - 1
  For intCol As Integer = 0 To dtb1.Columns.Count - 1
    strOutput(intRow, intCol) = CStr(dtb1.Rows(intRow).Item(intCol))
  Next intCol
Next intRow

或者您可以使用List(Of String())而不是二维数组:

Dim lstOutput As New List(Of Object()) From {dtb1.Rows(0).ItemArray, dtb1.Rows(1).ItemArray, dtb1.Rows(2).ItemArray}