DB2DataReader 对象有数据但 HasRows 属性为 false
Posted
技术标签:
【中文标题】DB2DataReader 对象有数据但 HasRows 属性为 false【英文标题】:DB2DataReader object has data but HasRows property is false 【发布时间】:2012-12-07 22:31:38 【问题描述】:我有一个程序使用从 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 时遇到过这样的问题,或者有什么一般的建议?
【问题讨论】:
【参考方案1】:事实证明,DB2 DataReader 并不是最好的对象。相反,我们只是在 DB2Connection 对象(在 C# 中)上调用了一个 ExecuteNonQuery() 命令,以便能够使用此方法提取数据。
【讨论】:
以上是关于DB2DataReader 对象有数据但 HasRows 属性为 false的主要内容,如果未能解决你的问题,请参考以下文章
获取一对多的核心数据关系第一次返回正确的对象,但其他时候返回空集
删除领域数据库对象,但即使所有对象都为空,领域文件大小也保持不变。并且在时间上变得太大了
drop temp table但已经创建'数据库中已经有一个名为'#temp'的对象'