【发布时间】:2011-09-25 02:07:24
【问题描述】:
在使用 ado.net 的 C# 中,如何在不返回结果集和不更改存储过程的情况下仅知道 SQL Server 选择存储过程可能返回的行数?
我根本不想读取数据,我只想要行数,因为加载会消耗大量内存。
【问题讨论】:
标签: c# sql-server-2005 ado.net
在使用 ado.net 的 C# 中,如何在不返回结果集和不更改存储过程的情况下仅知道 SQL Server 选择存储过程可能返回的行数?
我根本不想读取数据,我只想要行数,因为加载会消耗大量内存。
【问题讨论】:
标签: c# sql-server-2005 ado.net
我原本以为 .ExecuteNonQuery() 会做到这一点。但由于它不适用于 SELECT 语句,因此 DataReader 可能是您最好(最快)的选择。
int count = 0;
using (var dr = new SqlDataReader(cmd)) {
while (dr.Read()) count++;
}
【讨论】:
如果您只是不想加载结果,请创建另一个只返回 select Count(*) from etc... 的 sql 过程
【讨论】: