以下是我试图用来将数据从数据库导入对象列表(来自类)的代码。但是,它只在循环结束时获取列表中的一个项目。我曾经将数据放入ListBox而不是动态的对象列表,这些都有效,因此正在检索数据。
Public Class AnItem
Public Item As String
Public TheType As String
End Class
Public MyLists As List(Of AnItem)
Private Sub AddToList()
Dim i as integer
Dim fs as AnItem
For i = 0 To numberOfDataBaseitems
Dim fs as new AnItem
'fs.item = 'item 1'
'fs.type = 'box'
fs = getData(i)
'ONLY one ITEM IS ADDED!!!!!!??????
MyLists = New List(Of AnItem)
MyLists.Add(fs)
Next I
End Sub
答案 0 :(得分:1)
问题是循环中的这一行:
MyLists = New List(Of AnItem)
每次循环都会创建一个新的(空)列表。 1项添加到列表中。下次循环时,会创建另一个新的列表对象。
只需将此行移至此行之前:
For i = 0 To numberOfDataBaseitems
答案 1 :(得分:1)
更改此行代码
Public MyLists As List(Of AnItem)
到
Public MyLists As New List(Of AnItem)
并删除此行代码
MyLists = New List(Of AnItem)
每次执行最后一行代码时,列表都被声明为新的空列表。我猜你添加了这个,因为你得到了一个NullReference异常。您获得例外的原因是因为我在答案开头的MyLists声明中没有包含New
关键字