我有一个程序,它使用从C#批处理作业调用的DB2存储过程。一旦完成.ExecuteReader()调用,Visual Studio 2010就会显示数据读取器对象的FieldCount为“0”且HasRows属性为“False”。
但是......经过进一步的检查,我发现隐藏在对象内部(这是通过在调试时筛选'Locals'读数而发现的),存储过程实际上是将数据发回,我需要的信息是深埋在DB2DataReader对象中。
由于HasRows和FieldCount属性分别是'False'和'0',我无法使用任何内置方法获取数据(即.GetString(x),. GetValue(x).ToString ()等)。我无法遍历结果,因为while(reader.Read())命令将始终为false(由于HasRows属性)。
有没有人使用任何类型的DataReader遇到过这样的问题,或者一般有什么建议?
答案 0 :(得分:0)
事实证明,DB2 DataReader不是最好的对象。相反,我们只是在DB2Connection对象(在C#中)上调用了一个ExecuteNonQuery()命令,因为它能够使用此方法将数据拉出。