IDataReader语言 - 任何获得总行的方法



是否有任何方法可以在使用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时计算的行数但是我不明白,为什么你想在读取它之前知道行数

最新更新