我有一个带有 DataTable DataSet ,可以通过 TableAdapter 正确地填充单个 DataRow

我可以使用以下代码从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后,我现在可以在手表中看到变量,并且可以验证上面的代码是否正常工作。

有帮助吗?

解决方案

上面的代码有效,请确保将调试器设置为针对Debug,NOT Release进行编译。

基思

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top