此问题基于此Link
我还没有找到答案,但我正在尝试解决方案并导致另一个问题..
Public Class markerRow
Public MarkerName As String
Public CameraID As Integer
Public HostAddress As String
End Class
Public mr As New markerRow
Dim aList As New List(Of markerRow)
For Each dtrow In markerDtable.Rows
mr.MarkerName = dtrow("MarkerName")
mr.CameraID = dtrow("CameraID")
mr.HostAddress = dtrow("HostAddress")
aList.Add(New markerRow())
Next
从我的想法来看,这段代码应该将数据库中的每个数据添加到列表中的相应变量中。但我仍然不知道它到底是做什么的。
我检查了aList.Count.ToString
,它给了我5个项目,这是真的,因为我的数据库中有5行..
For Each elem In aList
listbox.Items.Add(mr.MarkerName)
listbox.Items.Add(mr.CameraID)
Next
检查aList
中的哪些项目,我做到了......不幸的是......它只给了我最后一项,5次。标记名列和摄像机ID列的最后一项。
我错过了什么?或者我的代码有什么问题?
aList
应该具有上面数据库中的内容。不仅是最后一项。
答案 0 :(得分:1)
Public mr As New markerRow
Dim aList As New List(Of markerRow)
For Each dtrow In markerDtable.Rows
mr.MarkerName = dtrow("MarkerName")
mr.CameraID = dtrow("CameraID")
mr.HostAddress = dtrow("HostAddress")
aList.Add(New markerRow())
Next
在这里,您要为markerRow
中的每一行创建名为mr
的一个 DataTable
,并更新。此外,对于每一行,您都要创建另一个 markerRow
,并将新的一个添加到aList
。
For Each elem In aList
listbox.Items.Add(mr.MarkerName)
listbox.Items.Add(mr.CameraID)
Next
然后,对于aList
中的每个元素,您将{em>两个项添加到ListBox
,每次MarkerName
和CameraID
来自mr
{1}},而不是aList
元素的数据。
你可能正在寻找类似的东西:
Dim aList As New List(Of markerRow)
For Each dtrow In markerDtable.Rows
Dim mr = New markerRow() ' create a new markerRow for every row '
mr.MarkerName = dtrow("MarkerName")
mr.CameraID = dtrow("CameraID")
mr.HostAddress = dtrow("HostAddress")
aList.Add(mr) ' add the new markerRow to the list '
Next
For Each elem In aList
listbox.Items.Add(elem.MarkerName)
Next