【发布时间】:2013-08-09 23:37:07
【问题描述】:
我有一个返回多个结果的 SQL Server 存储过程。存储过程的主体可能如下所示:
SELECT * FROM tableA;
SELECT * FROM tableB;
SELECT * FROM tableC;
在这种情况下,存储过程返回 3 个结果集。其他存储过程可能会返回,例如,1、0 或任意数量的结果集。每个结果集中可能包含 0 行或更多行。加载这些时,我需要调用 IDataReader.NextResult() 在结果集之间导航。
如何在 C# 中可靠地获取结果集的计数(而不是行计数)?
【问题讨论】:
-
count是什么意思,是结果集的个数还是每行数的个数?
-
支持所有选择的结果计数,就像他说的那样。
-
我的意思是结果集的计数(树上方)。每个集合可以包含一些行
-
我认为没有任何方法可以计算结果集的数量 - 您只需枚举它们(使用
reader.GetNextResult())并处理它们。但是,您无法提前确定要处理多少个结果集 -
只是为了扩展 marc_s 的评论。我认为将读者移过结果不会让我返回 - 所以我无法以动态的方式提前可靠地知道。即使它今天有效,我也可以期待明天的实施更改会打破我的假设或使其有效的黑客攻击。
标签: c# sql sql-server sqldatareader