MySql获取行数

本文关键字:获取 MySql | 更新日期: 2023-09-27 18:19:54

我试图用以下方法从表中获取行数:

        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.

知道我该怎么修吗?

MySql获取行数

试试这个

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());
}

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

如果您希望使用强制转换,可以使用:

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

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