MySql获取行数

时间:2013-06-24 21:02:37

标签: c# mysql .net

我尝试从表中获取行数:

        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.

我知道如何解决它?

3 个答案:

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