5

これを使用して、テーブルから行数を取得しようとします:

        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.

どうすれば修正できますか?

4

3 に答える 3

15

これを試して

using (MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
    connect.Open();
    return Convert.ToInt32(cmd.ExecuteScalar());
}
于 2013-06-24T21:05:35.447 に答える
2
using (MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
        connect.Open();
        return Convert.ToInt32(cmd.ExecuteScalar());
}

編集:コードで例外を処理することも確認してください(たとえば、SQL接続エラーがある場合)。また、そうでない場合、COUNT(*)返される値はExecuteScalar() null (!) になる可能性があります。

于 2013-06-24T21:09:07.100 に答える