2

次のような状況があります。誤って削除されたデータベース (SQL Server) 内のいくつかのテーブルを (バックアップと共に) 復元しようとしています。列の 1 つが存在するテーブルを再作成しましたvarbinary(MAX)(別のものであった可能性があります)。以下のコード行を使用して .NET でデータを抽出しようとするとIndexOutOfRangeException、ループ内の行に次のように表示されます。

Dim resultReader As SqlDataReader = myComm.ExecuteReader
    Dim previewBytes As Byte() = Nothing
    While resultReader.Read()
        previewBytes = DirectCast(resultReader.Item("preview"), Byte())
    End While

誰かがそれを修正する方法を教えてもらえますか?

編集: 少しわかりやすくするために、C# でのコードは次のようになります。

SqlDataReader resultReader = myComm.ExecuteReader;
    byte[] previewBytes = null;
    while (resultReader.Read()) {
        previewBytes = (byte[])resultReader.Item("preview");
}
4

1 に答える 1

0

それは C# ではコンパイルできませんが、この方法は私が持っている他のアプリケーションでも機能します (C# の例でもあります)。

byte[] previewBytes = (byte[])resultReader["preview"];
于 2012-12-05T19:53:41.227 に答える