IDataReader -任何获得总行的方法
本文关键字:方法 任何获 IDataReader | 更新日期: 2023-09-27 18:02:19
是否有任何方法可以在使用reader.Read();
迭代行之前获得从SQL查询(从IDataReader)返回的行总数?
No.
IDataReader
是结果集的简单前向视图;
不,数据读取器不会首先返回一个计数。但是,如果确实需要这样做,请使用两个返回多个结果集的查询。
,例如SQL Server:
sql = "SELECT COUNT(1) FROM A; SELECT * FROM A;"
迭代结果集。在第二个结果集上使用IDataReader
。
如果使用合适的索引,数据库服务器应该能够相当快地完成此操作。
已经超过了发布的日期,但是有一个方法,对我来说是有效的,花了一段时间,因为我糟糕的措辞我的谷歌搜索。
dbCommand.Connection.Open();
//dbReader = dbCommand.ExecuteReader(); I left this here to show not to do the read
searchCount = dbCommand.ExecuteScalar(); // this line returns the value count
// from my tests on my reader it works perfectly
也许不是一个好主意,但我得到计数使用变量内while循环。这段代码对我来说很好:
IDataReader reader = SqlHelper.ExecuteReader(sqlConnectionString, Procedure.GetSuperUserOwnerDetails, ProfileName);
int count = 0;
while (reader.Read())
{
count = count + 1;
}
lblProfileOperator.Text = " Owner : " + count;
仅在读取DataReader时计算的行数但是我不明白,为什么你想在读取它之前知道行数