IDataReader - 获取总行数的任何方法?

mic*_*ael 8 c# datareader rows count

有没有办法在使用reader.Read();?迭代行之前获取从SQL查询(来自IDataReader)返回的总行数?

SLa*_*aks 11

没有.

IDataReader是结果集的简单前向视图; 它不能算数.


sgt*_*gtz 6

不,datareader不会先返回计数.但是,如果确实需要这样做,请使用两个返回多个结果集的查询.

例如在SQL Server中:

sql = "SELECT COUNT(1) FROM A; SELECT * FROM A;"
Run Code Online (Sandbox Code Playgroud)

迭代结果集.使用IDataReader第二个结果集.

如果使用适当的索引,数据库服务器应该能够非常快速地执行此操作.