我有DataSet
DataTable
通过DataRow
正确地填充了TableAdapter
个。{/ p>
我可以使用以下代码从DataRow中提取数据:
dataFileID = (int)this.dataFileDataRow["DataFileID"];
dataFileName = (string)this.dataFileDataRow["DataFileName"];
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"];
我有一个名为DataFile的列varbinary(max)
。
当我尝试从上面的同一DataRow
中提取该列的数据时,我什么都没得到。
byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"];
如果我在这个位置放置一个断点,我可以查看dataFileDataRow,查看ItemArray属性,看看二进制数据是否位于ItemArray中的第5位。
我已尝试使用其索引直接访问ItemArray,但字节数组未被复制到fileFromDatabase变量。
我还注意到将fileFromDatabase添加到我的监视会产生此错误:
“名称'fileFromDatabase'在当前上下文中不存在”
执行仍然与fileFromDatabase的定义位于同一块中,因此我不明白它是如何脱离上下文的。
我将Visual Studio的配置设置为Release而不是Debug。这导致我在尝试检查fileFromDatabase时没有看到我正在寻找的实时调试信息。从Release转换到Debug后,我现在可以在手表中看到变量,并且可以验证上面的代码是否正常工作。
答案 0 :(得分:3)
上面的代码有效,请确保将调试器设置为针对Debug,NOT Release进行编译。
基思