我有一个 DataSet
,其中包含一个通过 TableAdapter
正确填充单个 DataRow
的 DataTable
。
我可以通过以下代码从 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中看到该变量,并验证上面的代码是否正确运行。