[英]Unable to Update MS-Access Database table using VB.net
我正在嘗試使用VB.net使用以下代碼更新MS-Access數據庫表,並且出現此錯誤“ UPDATE語句中的語法錯誤”
Dim Dcon As OleDbConnection
Dim Dcom As OleDbCommand
Dcon = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & DataSource & ";")
Dcom = New OleDbCommand("UPDATE Drivers SET ID=?,First=?,Last=?,Company=?,Addr=?,City=?,ST=?,Zip=?,MobileP=?,HomeP=?,Email=?,DL=?,DateSince=?,DateTerm=?,TruckID=?,Commants=?,Image=? WHERE ID = ID=?", Dcon)
Dcom.Parameters.AddWithValue("@ID", Label3.Text)
Dcom.Parameters.AddWithValue("@First", TextBox1.Text)
Dcom.Parameters.AddWithValue("@Last", TextBox2.Text)
Dcom.Parameters.AddWithValue("@Company", TextBox3.Text)
Dcom.Parameters.AddWithValue("@Addr", TextBox4.Text)
Dcom.Parameters.AddWithValue("@City", TextBox5.Text)
Dcom.Parameters.AddWithValue("@ST", TextBox6.Text)
Dcom.Parameters.AddWithValue("@Zip", TextBox7.Text)
Dcom.Parameters.AddWithValue("@MobileP", TextBox8.Text)
Dcom.Parameters.AddWithValue("@HomeP", TextBox9.Text)
Dcom.Parameters.AddWithValue("@Email", TextBox10.Text)
Dcom.Parameters.AddWithValue("@DL", TextBox11.Text)
Dcom.Parameters.AddWithValue("@DateSince", TextBox12.Text)
Dcom.Parameters.AddWithValue("@DateTerm", TextBox13.Text)
Dcom.Parameters.AddWithValue("@TruckID", TextBox14.Text)
Dcom.Parameters.AddWithValue("@Commants", TextBox15.Text)
Dcom.Parameters.AddWithValue("@Image", DriverImage)
Dcom.Parameters.AddWithValue("@ID", Label3.Text)
Dcom.ExecuteNonQuery()
Dcon.Close()
我在Google上花費了數小時,但無法解決此問題,這是我的字段名稱ID,第一,最后,公司,地址,城市,ST,郵編,MobileP,HomeP,電子郵件,DL,DateSince,DateTerm,TruckID,通勤者,全部顯示圖片TEXT
誰能告訴我這種語法有什么問題
單詞FIRST和IMAGE是MS-Access Jet SQL中的保留關鍵字。 如果要使用它們,則應在它們周圍使用方括號。
而且where子句的語法是錯誤的。 (但這可能只是一個錯字)
Dcom = New OleDbCommand("UPDATE Drivers SET " +
"ID=?,[First]=?,Last=?,Company=?,Addr=?,City=?," +
"ST=?,Zip=?,MobileP=?,HomeP=?,Email=?,DL=?,DateSince=?," +
"DateTerm=?,TruckID=?,Commants=?,[Image]=? WHERE ID=?", Dcon)
sql查詢末尾有語法問題:
... WHERE ID = ID=?
我認為應該是
WHERE ID = ?
您要將ID參數兩次添加到參數列表中,一次在開頭和結尾。
Dcom.Parameters.AddWithValue("@ID", Label3.Text)
...
Dcom.Parameters.AddWithValue("@ID", Label3.Text)
擺脫其中之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.