我尝试从表中获取行数:
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.
我知道如何解决它?
答案 0 :(得分:15)
试试这个
using (MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
connect.Open();
return Convert.ToInt32(cmd.ExecuteScalar());
}
答案 1 :(得分:2)
using (MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
connect.Open();
return Convert.ToInt32(cmd.ExecuteScalar());
}
编辑:确保在代码中处理异常(例如,如果存在SQL连接错误)。
此外,如果它不是COUNT(*)
ExecuteScalar()
返回的值可以为null(!)
答案 2 :(得分:1)
如果您想使用演员,可以使用:
long count = (long)cmd.ExecuteScalar();
如上所述,MySql中的COUNT返回BIGINT,因此使用int进行转换失败。