Vb.net 基于DataReader数据填充对象数组

Vb.net 基于DataReader数据填充对象数组,vb.net,class,datareader,Vb.net,Class,Datareader,我不知道如何恰当地表达我的问题,但我想实现这样的目标 我有一个名为Products的类 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 在我的一个代码隐藏页面中,我从SQL命令

我不知道如何恰当地表达我的问题,但我想实现这样的目标

我有一个名为Products的类

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
在我的一个代码隐藏页面中,我从SQL命令中检索数据,并将其放入datareader对象中

我如何才能声明该类,使datareader中的每一行实际上都是该类的实例

例如:

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
当我这样做时,我得到一个错误“对象引用未设置为对象的实例”


我对此感到非常困惑。非常感谢任何提示。谢谢。

您应该使用Arraylist或-better-a。 此外,我想在你的项目的编译器设置设置

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