2010-06-30 4 views
0

Je ne suis pas sûr de savoir comment formuler ma question correctement, mais je veux réaliser quelque chose comme ça.Remplir un tableau d'objets en fonction des données DataReader

J'ai une classe nommée Produits

public class Products 

private ID as Integer 

private Name as String 

Public Property ProductID() 
    Get 
    Return ID 
    End Get 
    Set(ByVal value) 
    ID = value 
    End Set 
End Property 

Dans l'un de mon code derrière pages, je suis en train de récupérer des données à partir d'une commande SQL et en plaçant le même dans un objet DataReader.

Comment serais-je en mesure de déclarer la classe afin que chaque ligne de mon lecteur de données soit réellement une instance de ladite classe?

Comme par exemple:

Dim myProduct() as New Product 
Dim intCnt as Integer 

While datareaderData.read() 
    intCnt += 1 
    myProduct(intCnt) = new Product 
    myProduct(intCnt).ID = datareaderData("ID") 
    myProduct(intCnt).Name = datareaderData("Name") 
End While 

Quand je fais la même chose, je reçois une erreur « Référence objet non définie à une instance d'un objet

Je suis tout à fait perplexe sur celui-ci.. des conseils très appréciés. Merci.

Répondre

1

Vous devez utiliser un Arraylist ou -better- un generic List(of Product). d'ailleurs, je voudrais strongly recommend de définir dans les paramètres du compilateur Option Strict On de votre projet.

Dim products As New List(Of Product) 
While datareaderData.read() 
    Dim nextProduct As New Product 
    nextProduct.ProductID = CType(datareaderData("ID"), System.Int32) 
    nextProduct.Name = datareaderData("Name").ToString 
    products.add(nextProduct) 
End While 
Questions connexes