将数据读取到多维数组

时间:2014-01-29 13:48:17

标签: vb.net

我必须将数据从数据库读取到未知大小的多维数组。

    Dim myarray As String()

            Using reader = mcmd.ExecuteReader()
                While (reader.Read())

                    myarray = TryCast(reader("mydataarray"), String())

                End While
            End Using

这里我只获得了myarray最后一行的字符串数组。

如何在'myarray'中获取sql结果中所有行的readed数据?

1 个答案:

答案 0 :(得分:1)

以下是我认为你的意思的代码:

Using reader = mcmd.ExecuteReader()
   Dim myOuterList as New List(of String())
   While (reader.Read())
      Dim myInnerList as New List(of String)
      'For loop retrieves all columns of data as string
      For i = 0 to reader.FieldCount - 1
         myInnerList.Add(reader.GetString(i))
      Next
      myOuterList.Add(myInnerList.ToArray)
   End While  
End Using 
dim myarray = myOuterList.ToArray

结果myarray的类型为String()() I.E.一个二维的字符串数组。

虽然这是可能的,但我会认真考虑使用类型解决方案,因为理解代码处理类型列表而不是二维数组会更容易。

键入的版本将是这样的:

Dim myList As List(Of myType) = reader.OfType(Of IDataRecord) _
                              .Select(Function(data) New myType _
                                        With {.mydataarray = data.item("mydataarray")})
                                              'Additionaly properties if needed.