我遇到以下情况,我正在尝试恢复数据库(SQL Server)中意外删除(以及备份)的某些表。我重新创建了一个表,其中的列之一是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");
}

最佳答案

好吧,这不会在C#中编译,但是此方法适用于我拥有的其他应用程序(在C#中也为示例):

byte[] previewBytes = (byte[])resultReader["preview"];

关于c# - 从.NET中的数据库中提取varbinary导致IndexOutOfRangeException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13730988/

10-12 00:13