如何从 SqlDataReader 读取 SQL Server COUNT

本文关键字:SQL Server COUNT 读取 SqlDataReader | 更新日期: 2023-09-27 18:36:39

我试图使用 C# SqlDataReader查找表的计数,但我不断得到

不存在数据时尝试读取无效

我的代码:

string sql = "SELECT COUNT(*) FROM [DB].[dbo].[myTable]";
SqlCommand cmd = new SqlComman(sql, connectionString);
SqlDataReader mySqlDataReader = cmd.ExecuteReader();
int count = mySqlDataReader.GetInt32(0); // Here is where I get the error.

我知道我有一个有效的数据库连接,因为我可以在很多地方读写它,COUNT(*)有什么特别之处,我无法正确读取它?如何填充int count

如何从 SqlDataReader 读取 SQL Server COUNT

你必须阅读它:

if (mySqlDataReader.Read()) {
  count = mySqlDataReader.GetInt32(0);
}

或者,你可以只使用ExecuteScalar:

int count = (int)cmd.ExecuteScalar();

定义为:

执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。

ExecuteScalar 是你需要的。