【问题标题】:How to read SQL Server COUNT from SqlDataReader如何从 SqlDataReader 读取 SQL Server COUNT
【发布时间】:2013-11-02 00:53:48
【问题描述】:

我正在尝试使用 C# SqlDataReader 查找表的计数,但我不断得到 ​​p>

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

我的代码:

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

【问题讨论】:

  • 给 count(*) 取一个别名。

标签: c# sql sql-server


【解决方案1】:

你必须阅读它:

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

或者,您可以只使用ExecuteScalar

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

定义为:

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

【讨论】:

    【解决方案2】:

    ExecuteScalar 是您所需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2019-02-23
      • 2021-09-20
      • 1970-01-01
      相关资源
      最近更新 更多