2016-04-09 26 views
-1

Veritabanındaki verileri bir nesneden (sınıftan) almak için kullanmaya çalıştığım kod aşağıdadır. Ancak, döngü bittiğinde listede yalnızca bir öğe olur. Verileri dinamik bir nesne listesi yerine bir ListBox'a yerleştirirdim ve bu da işe yaradı, böylece veriler alındı.Öğelerin listesi yalnızca bir yeni öğe ekler

MyLists = New List(Of AnItem) 

yeni (boş) listesine döngü etrafında her yaratıyor:

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

Sizin için bir yanıt geçerliyse, sorunun cevabının solundaki kenara tıklayın. Cevaplanmış olarak işaretlenmiş ** ve bu, gönderen kişinin itibar aldığından emin olur. Şerefe. –

cevap

1

sorun döngü içinde bu hat olmasıdır. Listeye 1 öğe eklendi. Döngü etrafında bir dahaki sefere başka bir yeni liste nesnesi oluşturulur.

Sadece bu satırdan önce bu çizgiyi taşımak:

Public MyLists As List(Of AnItem) 

Public MyLists As New List(Of AnItem) 

için bu kod satırını

For i = 0 To numberOfDataBaseitems 
1

Değiştir ve bu kod satırını kaldırmak

MyLists = New List(Of AnItem) 

Son kod satırını her çalıştırdığınızda, liste yeni bir boş liste olarak bildiriliyor. Sanırım bir NullReference istisnası aldığınız için bunu eklediniz. Bu istisnayı almamın sebebi cevabımın başlangıcındaki MyLists bildiriminiz New anahtar kelimeyi içermiyordu

İlgili konular