【问题标题】:Cannot use the Update Command in visual Studio 2012无法在 Visual Studio 2012 中使用更新命令
【发布时间】:2015-03-25 12:19:47
【问题描述】:
connect()
        MD = "update EmpRec set ('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "', '" & TextBox4.Text & "', '" & TextBox5.Text & "','" & ComboBox2.Text & "','" & ComboBox3.Text & "','" & Label3.Text & "','" & ComboBox4.Text & "','" & ComboBox5.Text & "','" & TextBox7.Text & "','" & TextBox8.Text & "','" & TextBox9.Text & "','" & Label19.Text & "','" & Label22.Text & "','" & Label25.Text & "','" & TextBox6.Text & "','" & TextBox10.Text & "')"
        comm = New OleDbCommand(MD, conn)
        comm.ExecuteNonQuery()
        MsgBox("Done!", MsgBoxStyle.Information)
        grid()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()
        TextBox5.Clear()
        DataGridView1.Refresh()
        TextBox2.Enabled = False
        TextBox3.Enabled = False
        TextBox4.Enabled = False
        TextBox5.Enabled = False
  End Sub

【问题讨论】:

  • 真的需要将其更改为parameterized query,然后如果您仍然存在任何问题,请重新访问。
  • 你有什么错误吗?
  • 您不能在任何已发布的 VS 中使用该命令,也不能针对我所知道的任何数据库系统使用该命令。请look at the correct syntax,然后停下来研究一下Sql Injection是什么
  • 您将值传递给您的 SQL,但没有告诉 UPDATE 要设置哪些列。此外,您正在输出“完成!”给用户,而无需实际检查是否已完成任何操作。正如 Alex K 指出的那样,您的查询中缺少参数已经够糟糕的了,但是您确实需要在其中进行一些错误处理。至少,把它放在一个 Try Catch 中。你知道什么比参数化查询更好吗?一个不错的存储过程。那不是很可爱吗?我个人喜欢一个好的存储过程。

标签: sql vb.net visual-studio-2012


【解决方案1】:

这不是编写 UPDATE 语句的方法。 试着看看 MD 长什么样。它可能类似于update EmpRec set ('asdf','zxcv','qwer'... 列名在哪里?此外,正如 Alex K. 在评论中所写,您真的需要将其更改为参数化查询。

【讨论】:

  • 我怀疑 Jecho 正在尝试插入。他的语句中缺少 WHERE 谓词对于 UPDATE 来说似乎很奇怪,除非他只希望表中只有一行(这完全有可能,如果它类似于设置表单等)。
  • @JonathonCowley-Thom 我真的不知道这是插入还是更新尝试。不管它是什么,显然它不能用 Jecho 发布的代码来完成。作为旁注 - 我们同意存储过程:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-21
  • 2013-03-25
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
相关资源
最近更新 更多