11

我有一个DataSet通过 aDataTable正确填充单个DataRow的 a TableAdapter

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

4

1 回答 1

5

上面的代码有效,请确保您将调试器设置为编译为调试,而不是发布。

基思

于 2008-11-12T19:49:41.770 回答