【问题标题】:C# Access Database Update Syntax ErrorC# Access 数据库更新语法错误
【发布时间】:2017-06-04 13:47:46
【问题描述】:

这个查询有问题吗?

"UPDATE tb_EmployeeMasterList SET [EmployeeID] = " + txt_EmpId.Text +", [LastName] = '" + txt_LN.Text + "', [FirstName] = '" + txt_FN.Text + "', [MiddleName] = '" + txt_MN.Text + "', [PositionOrSkill] = '" + txt_PorS.Text + "', [BasicSalary] = " + txt_Basic.Text + ", [Allowance] = " + txt_Allow.Text + ", [Total] = " + total + ", [EPAproposedBonus] = " + txt_Bonus.Text + ", [Remarks] = '" + txt_Remarks.Text + "' WHERE ([LastName] = '" + LN + "' AND [FirstName] = '" + FN + "');"

我继续仅在该查询上出现语法错误。

【问题讨论】:

  • 你得到什么错误???
  • 更新语句中的语法错误
  • 打印您的查询并查看它生成的内容。发布问题
  • Console.WriteLIne(sqlstring)
  • @SteveLovell 是的,他们有。我已经检查了 5 次了。

标签: c# sql ms-access


【解决方案1】:

好像少了一对单引号:

"UPDATE tb_EmployeeMasterList SET [EmployeeID] = " + txt_EmpId.Text +",

应该是:

"UPDATE tb_EmployeeMasterList SET [EmployeeID] = '" + txt_EmpId.Text +"', 

【讨论】:

  • 还是同样的错误。 EmployeeID 是我数据库中的一个整数/数字,这就是我没有单引号的原因。
  • 这是有道理的。所以正如 Rauhl 建议的那样:你能把运行时生成的 sql 字符串贴在这里吗?
  • 对不起,我忘了更新这个问题。我所做的是将数据库中 EmployeeID 的数据类型更改为字符串。我只是累了,想要一个简单的出路。哈哈!
【解决方案2】:

尝试触发不带括号的 WHERE 语句

"UPDATE tb_EmployeeMasterList SET [EmployeeID] = " + txt_EmpId.Text +", [LastName] = '" + txt_LN.Text + "', [FirstName] = '" + txt_FN.Text + "', [MiddleName] = '" + txt_MN.Text + "', [PositionOrSkill] = '" + txt_PorS.Text + "', [BasicSalary] = " + txt_Basic.Text + ", [Allowance] = " + txt_Allow.Text + ", [Total] = " + total + ", [EPAproposedBonus] = " + txt_Bonus.Text + ", [Remarks] = '" + txt_Remarks.Text + "' WHERE [LastName] = '" + LN + "' AND [FirstName] = '" + FN + "';"

【讨论】:

    【解决方案3】:

    如果 totalLNFN 值来自变量而不是文本框,则语法正常,但文本框然后在它们后面添加 .Text,否则会出现语法错误。

    【讨论】:

    • 它们是类中的变量。对不起,忘了说。它分别具有 Integer 和 String 值。
    • 我测试没有问题。如果还是这样,调试然后共享生成的 sql 语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多