我收到此错误与我的数据库中的表之一:语法错误在SQL UPDATE语句,但是这一切似乎确定:(
(System.Data.OleDb.OleDbException
类型的异常出现在system.data.dll但没有在用户代码中处理
其他信息:语法错误在UPDATE语句)
它让我从中读出,但是当我来添加新记录或使用SQL查询更新它,它给了我这个错误。 ,我已检查,双重检查和三重检查,但看不出有什么问题......奇怪的是,我从另一张桌子上拿下来w这是我知道的工作,并确保我改变了所有的变数,但无济于事!
道歉,如果你们都认为这是非常肮脏的代码,它是我的第一年项目,我仍然让我的头更快的方式做事情!
如果有人可以看看它,看看他们是否可以弄明白,那将是非常感谢!
Sub Update()
Dim cs As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("mydatabasename") + ";"
Dim cn As New OleDbConnection(cs)
Dim cmd As OleDbCommand
Dim r As OleDbDataReader
Dim ite As String
Dim siz As String
Dim quantit As String
Dim pric As String
Dim sourc As String
Dim updatestockstrings As String
updatestockstrings = Request.QueryString("updatestock")
ite = itm.Value
siz = sze.Value
quantit = qty.Value
pric = prc.Value
sourc = imgsrc.Value
If ite = "" Then
parMsg.InnerHtml = "Please add an item name"
ElseIf siz = "" Then
parMsg.InnerHtml = "Please add a size"
ElseIf quantit = "" Then
parMsg.InnerHtml = "Please add a quantity"
ElseIf pric = "" Then
parMsg.InnerHtml = "Please state a price"
ElseIf sourc = "" Then
parMsg.InnerHtml = "Please add an image source"
Else
cmd = New OleDbCommand("UPDATE Stocks Set Item='" & ite & "', Size='" & siz & "', Quantity='" & quantit & "', Price='" & pric & "', ImageSource='" & sourc & "' WHERE StockID=" & updatestockstrings & ";", cn)
cn.Open()
r = cmd.ExecuteReader()
Do While r.Read()
Loop
cn.Close()
parMsg.InnerHtml = "Update Successful!"
End If
End Sub
也许为什么上面的每个变量都缺少最后一个字母,这是一个背景问题? – Arman
首先,**停止连接SQL语句**。搜索SQL注入,然后在SO搜索“vb.net参数化查询”。要解决当前的问题,请将SQL存储在一个字符串中(而不是直接将其放入OleDBCommand中),并添加一个显示完成的SQL语句的消息框。 –
如果您发布了生成的实际SQL语句而不是构建它的代码,那么这会有所帮助。或者更好的是,在SSMS中打开该SQL语句并尝试运行它,然后您将看到问题的确切位置。 – JohnFx