asp.net IDataReader计数情况
我知道IDataReader没有计数选项。您不能在datareader中计算行数并返回再次读取,因为它只向前,这意味着您无法倒带它。我想到的最佳解决方案是执行select语句,计算datareader中的行数,然后执行另一个select语句,并对数据执行任何您想执行的操作 这个问题可能在这里被贴了很多次,但是没有人给出一个真正的解决方案。不执行第二个select语句的最佳解决方案是什么?选择是昂贵的asp.net IDataReader计数情况,asp.net,idatareader,Asp.net,Idatareader,我知道IDataReader没有计数选项。您不能在datareader中计算行数并返回再次读取,因为它只向前,这意味着您无法倒带它。我想到的最佳解决方案是执行select语句,计算datareader中的行数,然后执行另一个select语句,并对数据执行任何您想执行的操作 这个问题可能在这里被贴了很多次,但是没有人给出一个真正的解决方案。不执行第二个select语句的最佳解决方案是什么?选择是昂贵的 谢谢好吧,如果在阅读之前需要行计数,这只是一个问题,否则只需将结果和计数进行交互即可满足您的需要
谢谢好吧,如果在阅读之前需要行计数,这只是一个问题,否则只需将结果和计数进行交互即可满足您的需要。或者把所有的东西都读入数据集中,然后从那里开始工作 假设您在阅读第一行时需要行数,您总是可以这样做,这不是一个好主意
SELECT [The Real Fields],COUNT(*) as Qty
WHERE [Conditions]
UNION
SELECT [The Real Fields],0 as Qty
WHERE [Conditions]
这样,当您阅读第一行时,您将知道有多少行可用
是的,我知道可能有更好的SQL方法来获取行数,而无需联合和重复查询。select可能比请求所有数据并循环获取行数便宜很多倍。数据库在优化dbo.Table中的SELECT Count*方面非常聪明。