【问题标题】:Exception thrown: 'System.Data.SqlClient.SqlException' in System.Data.dll Additional information: Incorrect syntax near the keyword 'Table'抛出异常:System.Data.dll 中的“System.Data.SqlClient.SqlException”附加信息:关键字“Table”附近的语法不正确
【发布时间】:2016-12-11 12:10:37
【问题描述】:

我的代码产生以下错误:

System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常
附加信息:
')' 附近的语法不正确。

我的代码是:

conn.Open();

SqlDataAdapter sda = new SqlDataAdapter("Update [Table] Set [Name]='" + textBox2.Text + "',[Course]='" + comboBox1.Text + "',[YearSection]='" + textBox3.Text + "' Where [Id]='"+textBox1.Text+"')", conn);

sda.SelectCommand.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Updated Successfully !!!");

谁能帮我理解为什么这不起作用。

【问题讨论】:

  • 永远不要使用字符串连接来形成查询,因为它会导致sql注入。改用sql参数。
  • 我推荐使用 SQL Server 附带的 SQL Server Management Studio (SSMS)。在将查询放入 c# 代码之前,我通常会在 SSMS 中验证我的查询。 SSMS 中的错误消息比 c# 好得多。我还建议使用 string,Format 而不是 '+' : string.Format("Update [Table] Set [Name]='{1}',[Course]='{0}',[YearSection]='{ 2}' 其中[Id]='{0}'",textBox1.Text,comboBox2.Text,comboBox3.Text);

标签: c# sql-server database


【解决方案1】:

删除查询末尾的 )

【讨论】:

    猜你喜欢
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2021-07-24
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多