使用来自访问数据库的忠诚度积分填充文本框;

时间:2013-01-10 16:19:04

标签: c# sql textbox

我尝试使用通过文本框输入的customerID来填充带有信息的文本框,这里是使用下面的代码

private void txtCustomerID_TextChanged(object sender, EventArgs e)
{
    string strCon = Properties.Settings.Default.PID2dbConnectionString;
    OleDbConnection conn = new OleDbConnection(strCon);

    String sqlPoints = "SELECT points FROM customer WHERE [customerID]=" +   txtCustomerID.Text;
     txtPoints.Text = sqlPoints;
}

但文本框“txtPoints”只输出sqlpoints的文本而不是数据库中的信息?我不确定我在这里做错了什么。

感谢任何帮助,提前谢谢。

1 个答案:

答案 0 :(得分:1)

您没有在数据库上执行SQL语句。相反,您将其分配给txtPoints.Text。您需要使用例如OleDbCommand对象在数据库服务器上执行它。

你需要做的事情就像下面这样(注意这是伪代码 - 我没有测试它运行)

using (OleDbConnection conn = new OleDbConnection(strCon))
{
    String sqlPoints = "SELECT points FROM customer WHERE [customerID]=" +   txtCustomerID.Text;

    // Create a command to use to call the database.
    OleDbCommand command = new OleDbCommand(sqlPoints, conn)

    // Create a reader containing your results
    using(OleDbReader reader = command.ExecuteReader()) 
    {
        reader.Read(); // Advance to the first row.
        txtPoints.Text = reader[0].ToString(); // Read the contents of the first column
    }
}

另请注意我对using的使用。这将确保您在完成数据库连接后正确关闭它们。