OleDbCommand computerStatus = new OleDbCommand("update Computer SET Status= 'Occupied' where PcNumber='" + cboComputerNo.Text + "'", con);
computerStatus.ExecuteNonQuery();
这是我的代码。 pcNumber是自动编号我得到一个错误,它要我将数据类型更改为字符串,但我需要它是自动编号。
答案 0 :(得分:0)
AutoNumber
是自动号码。由于它是一个数值,因此您无需使用单引号。
但更重要的是,您应该始终使用parameterized queries。这种字符串连接对SQL Injection攻击开放。
还可以使用using
statement来处置您的OleDbConnection
和OleDbCommand
。
using(OleDbConnection con = new OleDbConnection(conString))
using(OleDbCommand computerStatus = con.CreateCommand())
{
computerStatus.CommandText = "update Computer SET Status= ? where PcNumber = ?";
computerStatus.Parameters.AddWithValue("@status", "Occupied");
computerStatus.Parameters.AddWithValue("@number", cboComputerNo.Text);
computerStatus.ExecuteNonQuery();
}
正如LarsTech指出的那样,您可能希望使用Int.TryParse
method检查cboComputerNo.Text
字符串是否为有效整数。