0

メモリストリームに書き込まれてからデータベースフィールドに挿入される7つの変数でクラスをシリアル化しました。変数 7 はすべて 4 バイトであり、データベースに書き込まれる前に結合された数百のレコードが存在する場合があります。これは正常に機能します。

ただし、データベースからデータを取得して逆シリアル化すると、次のようになります。

    rdr = cmd.ExecuteReader
    While rdr.Read()
        arr = rdr("BINPROFILE")
        ms.Write(arr, 0, arr.Length)
        ms.Position = 0
        SER = bf.Deserialize(ms)
    End While

7つの変数を含むクラスの実装である私の変数「SER」は、最初の7つの変数のみを読み取ります。

メモリ ストリーム全体をループして、そこに含まれるすべてのデータを読み取るにはどうすればよいですか?

4

1 に答える 1

0

SER はループの反復ごとに上書きされ、最後のレコードの値だけが残ります。これらを配列またはリストに保存するか、ループ内で操作する必要があります。

SER = bf.Deserialize(ms)

この行は、SER 変数にあったものを新しい値 (あなたの場合は 7 つの変数) に置き換えます。

于 2013-10-03T14:48:30.147 に答える