asp.net IDataReader计数情况

时间:2013-02-27 13:18:16

标签: asp.net idatareader

我知道IDataReader没有计数选项。并且您无法计算datareader中的行并再次读取它,因为它只是前进,这意味着您无法倒回它。我想到的最佳解决方案是执行select语句,计算datareader中的行数,然后执行另一个select语句,并对数据执行任何操作。

这个问题可能已在这里多次发布,但没有人给出真正的解决方案。什么是最好的解决方案没有做第二个选择声明? (选择很贵)

谢谢

1 个答案:

答案 0 :(得分:1)

嗯,如果您在阅读之前需要行数,这只是一个问题,否则只需对结果进行处理,计数将为您提供所需。或者只是阅读everthing到数据集并从那里开始工作

假设您在阅读第一行时需要rowcount,您可以随时执行此类操作(不是一个好主意)

SELECT [The Real Fields],COUNT(*) as Qty
WHERE [Conditions]
UNION 
SELECT [The Real Fields],0 as Qty
WHERE [Conditions]

这样,当您阅读第一行时,您就会知道有多少行可用。

是的,我知道可能有更好的方法来使用SQL来获取没有联合和重复查询的rowcount。