查询文本框时出错

时间:2012-12-27 06:30:26

标签: c# mysql sql visual-studio

这应该是一个简单的解决方案,但Visual Studio 2012给我的错误说sqlCon是一个字段但是像Textbox1一样使用类型和相同的错误...也许我缺少一个程序集引用或正确的连接导入?我希望继续这条简单的路线。

    MySqlConnection sqlCon = new MySqlConnection("Server=***;Port=***;Database=***;Uid=***;Pwd=***;");
    MySqlCommand commandText = new MySqlCommand ("SELECT count(Dues) From Students");
        sqlCon.CommandText = "SELECT * count(Dues) FROM Students";
        sqlCon.Connection = sqlCon;
        TextBox1.Text = sqlCon.ExecuteScalar().ToString();

2 个答案:

答案 0 :(得分:4)

  • 打开连接
  • 使用using语句
  • 使用Try-catch阻止

代码段,

string connStr = "Server=***;Port=***;Database=***;Uid=***;Pwd=***;";
string query = "SELECT count(Dues) From Students";
using(MySqlConnection sqlCon = new MySqlConnection(connStr))
{
    using(MySqlCommand sqlComm = new MySqlCommand())
    {
        sqlComm.Connection = sqlCon;
        sqlComm.CommandText = query;

        try
        {
            sqlCon.Open();
            TextBox1.Text = sqlComm.ExecuteScalar().ToString();
        }
        catch(MySqlException ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
}

答案 1 :(得分:1)


MySqlConnection sqlCon = new MySqlConnection("Server=***;Port=***;Database=***;Uid=***;Pwd=***;");
MySqlCommand commandText = new MySqlCommand ("SELECT count(Dues) From Students");

//sqlCon is of type MySqlConnection which is derived from DbConnection
sqlCon.CommandText = "SELECT * count(Dues) FROM Students";

//sqlCon has no Connection property, and why are you even assigning sqlCon to that property
sqlCon.Connection = sqlCon;

//ofcourse this will fail
TextBox1.Text = sqlCon.ExecuteScalar().ToString();

我相信你想要达到的目标是:

MySqlConnection sqlCon = new MySqlConnection("Server=***;Port=***;Database=***;Uid=***;Pwd=***;");
MySqlCommand command = new MySqlCommand ("SELECT count(Dues) From Students");

try
{
  sqlCon.Open();
  command.Connection = sqlCon;
  TextBox1.Text = command.ExecuteScalar().ToString();
}
finally
{
  sqlCon.Close();
}