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进行转换失败。