0

質問を適切に表現する方法がわかりませんが、このようなことを達成したいと考えています。

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

コード ビハインド ページの 1 つで、SQL コマンドからデータを取得し、それを 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

同じことをすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私はこれにかなり困惑しています。どんなヒントでも大歓迎です。ありがとう。

4

1 に答える 1

1

Arraylistまたは-better-ジェネリックList(of Product)を使用する必要があります。さらに、プロジェクトのコンパイラ設定でOptionStrictOnを設定することを強くお勧めします。

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
于 2010-06-30T20:07:02.903 に答える