根据DataReader数据填充对象数组

时间:2010-06-30 19:41:24

标签: 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命令中检索数据并将其放入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

当我这样做时,我收到错误“对象引用未设置为对象的实例。

我对这个很难过。任何提示非常感谢。感谢。

1 个答案:

答案 0 :(得分:1)

你应该使用Arraylist或-better-a generic List(of Product)。 此外,我会strongly recommend在项目的编译器设置中设置Option Strict On

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