我有一個連接到訪問數據庫的小程序,而我正在嘗試執行的操作是通過編輯表單更新(編輯)選定的記錄。當我執行我的代碼,我得到這個錯誤:當我嘗試更新訪問數據庫中的記錄時出現錯誤
System.Data.OleDb.OleDbException was unhandled
Message=Syntax error (missing operator) in query expression '5346 S. Eubank blvd'.
Source=Microsoft Access Database Engine
ErrorCode=-2147217900
不用說,這是地址字段..
這裏是我的代碼塊:
private void saveChangeBtn_Click(object sender, EventArgs e)
{
Customer.SetCustID(Convert.ToInt32(editIdTB.Text));
Customer.SetFirstName(editFirstNameTB.Text);
Customer.SetLastName(editFirstNameTB.Text);
Customer.SetAddress(editAddressTB.Text);
Customer.SetPhoneNum(editPhoneTB.Text);
Customer.SetEmail(editEmailTB.Text);
using (OleDbConnection connect = new OleDbConnection(connectionString))
{
OleDbCommand cmd = new OleDbCommand();
connect.Open();
cmd.Connection = connect;
cmd.CommandText = "UPDATE Customers SET [Customer ID]=" + Customer.GetCustId() +
", [First Name]=" + Customer.GetFirstName() +
", [Last Name]=" + Customer.GetLastName() +
", [Address]=" + Customer.GetAddress() +
", [Phone Number]=" + Customer.GetPhoneNum() +
", [Email Address]=" + Customer.GetEmailAddress() +
", WHERE [Customer ID]=" + editIdTB.Text + "";
cmd.ExecuteNonQuery();
connect.Close();
MessageBox.Show("Changes made successfully!", "Success!", MessageBoxButtons.OK);
}
this.Close();
}
在WHERE之前是否應該有一個逗號?你允許用戶更改客戶ID嗎?似乎你不想這樣做,或者如果是這樣的話,使用不同的主鍵。如果您簡化查詢以更新地址並跳過其餘部分,您是否仍然遇到相同的錯誤? – Tad
將您的cmd.CommandText回顯到頁面或日誌文件,以便您可以看到您要執行的操作。 – Tad
我只是做了這個地址,並去了這個錯誤: System.Data.OleDb.OleDbException未處理 消息=查詢表達式'5346 S. Eubank blvd WHERE [客戶ID] = 3'中的字符串中的語法錯誤。 源= Microsoft Access數據庫引擎 錯誤碼= -2147217900 堆棧跟蹤: 在 – Carson