如何从SqlDataReader读取SQL Server COUNT

fif*_*c04 13 c# sql sql-server

我正在尝试使用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.
Run Code Online (Sandbox Code Playgroud)

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

Lar*_*ech 22

你必须阅读它:

if (mySqlDataReader.Read()) {
  count = mySqlDataReader.GetInt32(0);
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用ExecuteScalar:

int count = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

其定义为:

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