如何使用插入模块的函数

时间:2014-04-30 00:03:22

标签: vb.net

我的命令是我的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()

2 个答案:

答案 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()) & "'"