0

我正在尝试使用通过文本框输入的 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的文本而不是数据库中的信息?我不确定我在这里做错了什么。

任何帮助表示赞赏,在此先感谢。

4

1 回答 1

1

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

您需要做的是类似于以下内容(注意这是伪代码 - 我尚未测试它是否运行)

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 的使用。这将确保您的数据库连接在完成后正确关闭。

于 2013-01-10T16:24:12.547 回答