我收到此錯誤與我的數據庫中的表之一:語法錯誤在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