我有一个使用从 C# 批处理作业调用的 DB2 存储过程的程序。调用 .ExecuteReader() 后,Visual Studio 2010 显示数据读取器对象的 FieldCount 为“0”,HasRows 属性为“False”。
然而..经过进一步检查,我发现隐藏在对象深处(这是通过在调试时筛选“Locals”读数发现的),存储过程实际上是在发回数据,而我需要的信息深埋在里面DB2DataReader 对象。
由于 HasRows 和 FieldCount 属性分别为“False”和“0”,我无法使用它的任何内置方法(即 .GetString(x)、.GetValue(x).ToString()、 ETC)。我无法遍历结果,因为 while(reader.Read()) 命令将始终为 false(由于 HasRows 属性)。
有没有人在使用任何类型的 DataReader 时遇到过这样的问题,或者一般有什么建议?