【问题标题】:SQL Command Error UPDATE "Near Syntax \ "SQL 命令错误 UPDATE "Near Syntax \"
【发布时间】:2013-01-01 08:15:07
【问题描述】:

我想要做的是,从 ASP.NET(框架 4)中,用户应该能够使用记录键更新 SQL 数据库中的现有记录。使用 Visual Studio 2010 (vb)

“\”附近出现语法错误,我有 2 个文本框: 1- 钥匙 2-包含将发送到 SQL 服务器以更新此类列的信息 (Control_ClosedByRev)

Dim Con As New SqlConnection
Dim SQL As String
Dim com As SqlCommand = Con.CreateCommand
Dim KeyID As Integer
KeyID = TextBox1_UpdateDataReview.Text

Con.ConnectionString = "Data Source=WCRDUSMJEMPR9\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"
Con.Open()
SQL = "UPDATE ControlCharts set Control_ClosedByRev=" & TextBox2_UpdateDataReview.Text & " where ID_ControlCharts= " & KeyID
Dim cmd As New SqlCommand(SQL, Con)
'cmd.ExecuteScalar()
cmd.ExecuteNonQuery()
Label1_UpdateDataReview.Text = "Record Updated"

我尝试更改 cmd.execute,但没有成功。提前致谢。

【问题讨论】:

  • 你应该使用参数化查询。

标签: sql vb.net tsql exception-handling ado.net


【解决方案1】:

首先,这很容易受到 SQL 注入的影响——读入它并改用参数化查询。

这里有一些示例代码可以提供帮助。

    Con.ConnectionString = "Data Source=WCRDUSMJEMPR9\\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"
    Con.Open()
    SQL = "UPDATE ControlCharts set Control_ClosedByRev=@ClosedByRev where ID_ControlCharts=@Key"

    Dim cmd As New SqlCommand(SQL, Con)
    cmd.Parameters.AddWithValue("@ClosedByRev ", TextBox2_UpdateDataReview.Text)
    cmd.Parameters.AddWithValue("@Key", KeyID)
    cmd.ExecuteNonQuery()

祝你好运。

【讨论】:

  • 你能提供字符串的样子吗?我只对 INSERT 使用了一次参数化查询,但我没有找到如何将它用作 UPDATE。
  • 不确定我是否在关注 - 请参阅上面的代码。由于它使用 AddWithValue,所以没关系。祝你好运。
  • 它成功了,我正在学习这一切。谢谢
【解决方案2】:

试试这个:在字符串前面加上“@”符号

 Con.ConnectionString = @"Data Source=WCRDUSMJEMPR9\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"

或者转义斜线"Data Source=WCRDUSMJEMPR9\\SQLEXPRESS;Initial Catalog=MicroDB;Integrated Security=True"

【讨论】:

  • 收到“实例失败”错误,我正在使用 Visual Studio 2010 (vb)
  • 感谢您的反馈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
相关资源
最近更新 更多