首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >connection.execute

connection.execute
EN

Stack Overflow用户
提问于 2012-07-22 18:41:49
回答 2查看 102关注 0票数 0
代码语言:javascript
复制
`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)

“有人能说出为什么这段代码不工作吗?它显示一个或多个必需参数没有值。”

EN

回答 2

Stack Overflow用户

发布于 2012-07-22 18:54:50

我猜最直接的问题是SQL片段

代码语言:javascript
复制
where Company = value

是无效的SQL。应该引用一下:

代码语言:javascript
复制
where Company = 'value'

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

  1. 我会避免这个问题,因为参数会在必要时被自动引用。
  2. 它会使代码更容易阅读。
  3. 它不会容易受到

注入攻击。

例如:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2012-07-22 18:54:03

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

还要考虑如果Combo3.Text包含

代码语言:javascript
复制
'a'; delete from Balance
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11599583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档