如何在C#中从DataRow中读取字节数组?

11

我有一个 DataSet,其中包含一个通过 TableAdapter 正确填充单个 DataRowDataTable

我可以通过以下代码从 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后,我现在能够在watch中看到该变量,并验证上面的代码是否正确运行。


请说明您正在使用的编程语言。 - Andy Lester
1个回答

5
上述代码有效,请确保将调试器设置为编译Debug而不是Release。
Keith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接