我必须将数据从数据库读取到未知大小的多维数组。
Dim myarray As String()
Using reader = mcmd.ExecuteReader()
While (reader.Read())
myarray = TryCast(reader("mydataarray"), String())
End While
End Using
这里我只获得了myarray最后一行的字符串数组。
如何在'myarray'中获取sql结果中所有行的readed数据?
答案 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.