在C#中从MySQL数据库获取行数

时间:2018-04-06 16:14:36

标签: c# mysql

我想计算MySql数据库中的行数并在标签中返回结果。

这是我的代码:

string connection = "SERVER= ###; PORT=###; DATABASE=###; UID=###; PASSWORD=###; CharSet=utf8;";

MySqlConnection mySqlCon = new MySqlConnection(connection);
MySqlCommand mySqlCmd = mySqlCon.CreateCommand();


mySqlCmd.CommandText = "Select count(*) as myCount from ###.###";
mySqlCon.Open();

int returnValue = (int) mySqlCmd.ExecuteScalar();

lblCLientNumber.Text = returnValue.ToString();

我得到的错误是: Specified cast is not valid.

但是当我在phpMyAdmin中运行SQL命令时,结果是准确的。

我不确定我在哪里弄错了。

3 个答案:

答案 0 :(得分:1)

您收到此错误,因为 ExecuteScalar 函数返回一个对象。

您可以执行以下操作:

int returnValue = int.Parse(mySqlCmd.ExecuteScalar().toString());

答案 1 :(得分:1)

尝试

int returnValue = Convert.ToInt32(mySqlCmd.ExecuteScalar());

但是,我倾向于引用该字段。例如

之类的东西
using(MySqlCommand cmd = new MySqlCommand("Select count(*) as myCount from 
###.###", connection))
{
    using(MySqlDataReader rdr = cmd.ExecuteReader())
    {
        if(rdr.Read()) 
        {
            returnValue = Convert.ToInt32(rdr["myCount"]);
        }
    }
    rdr.Close();
}

答案 2 :(得分:1)

尝试使用

returnValue = int.Parse(mySqlCmd.ExecuteScalar().ToString());

C#要求一个整数;

看一看Getting MySQL record count with C#

之前已经问过这个问题