2016-04-09 19 views
-1

以下は、データベースからクラスのオブジェクトのリストにデータをインポートするために使用しようとしているコードです。ただし、ループが終了すると、リスト内のアイテムは1つしか取得されません。私は、オブジェクトの動的リストの代わりにListBoxにデータを配置していたので、データが取得されていました。アイテムのリストは新しいアイテムを1つだけ追加します

MyLists = New List(Of AnItem) 

新しい(空の)リストにループの周りのたびに作成されています

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

問題は、ループ内のこの行があることです。 1項目がリストに追加されます。次回はループの周りに別の新しいリストオブジェクトが作成されます。

ただ、この行の前に次の行を移動します。

Public MyLists As List(Of AnItem) 

Public MyLists As New List(Of AnItem) 

にこのコード行を

For i = 0 To numberOfDataBaseitems 
1

の変更をし、このコード行を削除

MyLists = New List(Of AnItem) 

最後のコード行を実行するたびに、リストは新しい空のリストとして宣言されています。私はあなたがNullReference例外を取得していたのでこれを追加したと思います。あなたが例外を取得した理由は、答えの最初にMyListsの宣言にNewというキーワードが含まれていたためです

関連する問題