我想计算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命令时,结果是准确的。
我不确定我在哪里弄错了。
答案 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#要求一个整数;
之前已经问过这个问题