我尝试使用通过文本框输入的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的文本而不是数据库中的信息?我不确定我在这里做错了什么。
感谢任何帮助,提前谢谢。
答案 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的使用。这将确保您在完成数据库连接后正确关闭它们。