MySql获取行数

我尝试从表中获取行数:

string commandLine = "SELECT COUNT(*) FROM client"; using (MySqlConnection connect = new MySqlConnection(connectionStringMySql)) using (MySqlCommand cmd = new MySqlCommand(commandLine, connect)) { connect.Open(); int count = (int)cmd.ExecuteScalar(); return count; } 

我得到了例外:

 Specified cast is not valid. 

知道我怎么解决它吗?

试试这个

 using (MySqlCommand cmd = new MySqlCommand(commandLine, connect)) { connect.Open(); return Convert.ToInt32(cmd.ExecuteScalar()); } 
 using (MySqlCommand cmd = new MySqlCommand(commandLine, connect)) { connect.Open(); return Convert.ToInt32(cmd.ExecuteScalar()); } 

编辑:确保在代码中处理exception(例如,如果存在SQL连接错误)。 另外,如果它不是COUNT(*) ,则ExecuteScalar()返回的值可以为null(!)

如果您想使用演员表,您可以使用:

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

如上所述,MySql中的COUNT返回BIGINT,因此使用int进行转换失败。