我试图用下面的代码使用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()我花了几个小时在谷歌上,我无法解决这个问题--我的域名ID,First,Last,Addr,City,ST,Zip,MobileP,HomeP,Email,DL,DateSince,DateTerm,TruckID,Commants,Image --他们都是文本
任何人都能告诉我这个语法有什么问题吗?
发布于 2013-11-25 14:23:22
在中,单词优先和图像是保留关键字.如果你想使用它们,你应该在它们周围使用方括号。
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)发布于 2013-11-25 14:23:27
sql查询的末尾有一个语法问题:
... WHERE ID = ID=?
我想应该是
WHERE ID = ?https://stackoverflow.com/questions/20195419
复制相似问题