【问题标题】:Problem with db.Database.SqlQuery() usage in C#C# 中的 db.Database.SqlQuery() 使用问题
【发布时间】:2018-10-07 05:20:18
【问题描述】:

我是 C# 的新手。我写了如下代码

TestDBEntities db = new TestDBEntities();
string data = db.Database.SqlQuery<string>("select PASSWORD from User where USERNAME='admin'").FirstOrDefault();

当我执行这段代码时,出现错误:

关键字“用户”附近的语法不正确

为什么会这样?我已经有一个名为“用户”的表。

感谢cmets。

【问题讨论】:

  • 因为 User 可能是一个保留字,你必须转义它
  • @SamiKuhmonen 谢谢。将表名从 User 更改为其他名称后,它可以工作。
  • @TimBiegeleisen 这是 MS SQL Server。

标签: c# sql asp.net sql-server


【解决方案1】:

将你的 sql 查询更改为以下代码:

"select [PASSWORD] from [User] where [USERNAME]='admin'"

告诉我们,您使用的是哪个数据库? (SQL Server 或 MySQL 或 ...)

“并避免使用保留关键字命名您的数据库表、列等”

【讨论】:

  • 并避免使用保留关键字 +1 命名您的数据库表、列等。
【解决方案2】:

User 是典型的 SQL 保留字。

使用 SQL 保留字作为表名不是一个好习惯。

此处保留字列表:https://www.drupal.org/docs/develop/coding-standards/list-of-sql-reserved-words

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2012-05-23
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多