如何从SqlDataReader读取SQL Server COUNT

我正在尝试使用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

你必须阅读它:

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

或者,您可以使用ExecuteScalar :

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

定义为:

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

ExecuteScalar是您所需要的。