簡體   English   中英

無法使用VB.net更新MS-Access數據庫表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM