我的命令是我的sql命令where子句中的错误,我该如何处理呢?任何建议或任何帮助?
这是我的错误: 在第1行'WHERE controlNumber =''附近使用的语法
cmd = New Odbc.OdbcCommand("INSERT INTO alamnotice (correctivePreventive) VALUES('" & Trim(txtremarks.Text.TrimEnd()) & "') WHERE controlNumber ='" & Trim(Form1.txtcontrolNumber.Text.TrimEnd()) & "'", con)
cmd.ExecuteNonQuery()
答案 0 :(得分:0)
你还没有说错误是什么,它可能与Disconnect有关,但我怀疑这是一个SQL语法错误,因为INSERT
没有使用WHERE(你插入 new 数据)。
这是一种使用params使代码更易于阅读并避免SQL注入攻击的方法:
Dim SQL As String = "INSERT INTO alamnotice (correctivePreventive,
sectionInCharge, shiftInCharge, SectionHead, status,
dateResponded, remarksSurrendingAlarm, Remarks)
VALUES ("@p1", "@p2", "@p3", "@p4", "@p5", "@p6", "@p7", "@p8")"
' I am assuming OleDB, but much the same for others
' be sure to add the values in the same order with OleDB
Using cmd As New OleDbCommand(SQL, dbCon)
cmd.Parameters.AddWithValue("@p1", txtcorPrevAction.Text )
cmd.Parameters.AddWithValue("@p2", txtCause.Text)
cmd.Parameters.AddWithValue("@p3", cmbstatus.Text)
' etc
cmd.ExecuteNonQuery()
End Using
对于非字符串列,例如日期,转换文本框文本:
cmd.Parameters.AddWithValue("@pX", COnvert.ToInt32(txtSomeValue.Text))
代码更容易阅读,如果你没有将刻度和内容粘贴到一个字符串中,那么字符串格式错误就会少得多,例如缺少'
答案 1 :(得分:0)
试试这个:
UPDATE alamnotice SET correctivePreventive = '" & Trim(txtremarks.Text.TrimEnd()) & "' WHERE controlNumber ='" & Trim(Form1.txtcontrolNumber.Text.TrimEnd()) & "'"