connection.execute

时间:2012-07-22 10:41:49

标签: database vb.net connection

`Dim con1 As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim sql1 As String
sql1 = "Update Balance set Balance_Amt = (Balance_Amt + " & a & ") where Company = " & Combo3.Text
con1.Execute (sql1)

“任何人都可以说为什么这段代码不起作用?它说没有一个或多个必需参数的值”

2 个答案:

答案 0 :(得分:1)

我猜想当前的问题是SQL片段

where Company = value

是无效的SQL。应该引用:

where Company = 'value'

但你真的应该使用SQL参数。

  1. 我会避免这个问题,因为参数会在必要时自动引用。
  2. 这会使代码更容易阅读。
  3. 它不会受到SQL注入攻击的影响。
  4. e.g。

    Using cmd = new SqlCommand("UPDATE Balance SET Balance_Amt = (Balance_Amt + @a) WHERE Company=@company", con1)
        cmd.Parameters.AddWithValue("@a", a)
        cmd.Parameters.AddWithValue("@company", company)
        cmd.ExecuteNonQuery()
    End Using
    

答案 1 :(得分:0)

打印出sql语句并查看是否正常,将其复制/粘贴到sql management studio。 我认为你在字符串Combo3.Text周围缺少撇号。

如果Combo3.Text包含

,还要考虑它会导致什么样的SQL
'a'; delete from Balance