Nal*_*lum 10 vb.net while-loop multidimensional-array
我正在尝试构建一个多维数组,它将为数据库中的每个记录保存两位信息,例如id,description.
这就是我目前正在做的事情.
Dim mArray(,) As String
Dim i As Integer = 0
While cmdReader.Read()
mArray(i,0) = cmdReader.Item("id")
mArray(i,1) = cmdReader.Item("description")
i = i + 1
End While
Run Code Online (Sandbox Code Playgroud)
我在这里遇到的问题是它不喜欢i
中mArray(i,0)
.有人对此有什么想法吗?这是给出的错误Object reference not set to an instance of an object.
感谢您的帮助.
Nalum
Adr*_*der 14
为什么不使用List Class和Dictionary Class
您可以创建一个词典列表,其中键和值都是字符串.然后,密钥可以表示您的密钥(示例中的ID和描述,值可以是存储的值).
就像是
Dim values As New List(Of Dictionary(Of String, String))()
Run Code Online (Sandbox Code Playgroud)
然后在while循环中
values.Add(New Dictionary(Of String, String)() From { _
{"id", cmdReader.Item("id")} _
})
values.Add(New Dictionary(Of String, String)() From { _
{"description", cmdReader.Item("description")} _
})
Run Code Online (Sandbox Code Playgroud)
然后你可以使用foreach
For Each value As Dictionary(Of String, String) In values
Dim id As String = value("id")
Dim description As String = value("description")
Next
Run Code Online (Sandbox Code Playgroud)
或者一个
For i As Integer = 0 To values.Count - 1
Dim value As Dictionary(Of String, String) = values(i)
Dim id As String = value("id")
Dim description As String = value("description")
Next
Run Code Online (Sandbox Code Playgroud)
小智 5
试试这个
Dim mArray(1,1) As String
Dim i As Integer = 0
While cmdReader.Read()
mArray(i,0) = cmdReader.Item("id")
mArray(i,1) = cmdReader.Item("description")
i = i + 1
ReDim Preserve mArray(i,1)
End While
Run Code Online (Sandbox Code Playgroud)