SQL 错误:关键字“User”附近的语法不正确

本文关键字:语法 不正确 User 错误 关键字 SQL | 更新日期: 2023-09-27 17:57:04

我正在使用SQL使用C#将数据插入SQL数据库文件,如下所示。

    String cs = System.Configuration.ConfigurationManager.ConnectionStrings["connection1"].ConnectionString;
    SqlConnection conn = new SqlConnection(cs);
    String sql = "INSERT INTO User (login, password, status) " + 
            "VALUES (@login, @password, @status)";
    SqlCommand comm = new SqlCommand(sql, conn);
    comm.Parameters.Add("@login", System.Data.SqlDbType.VarChar);
    comm.Parameters.Add("@password", System.Data.SqlDbType.VarChar);
    comm.Parameters.Add("@status", System.Data.SqlDbType.Bit);
    try
    {
        conn.Open();
        Console.WriteLine(conn.ToString());
        comm.ExecuteNonQuery();
        conn.Close();
        return true;
    }
    catch (Exception ex)
    {
        throw (ex);
    }
    finally
    {
        conn.Close();
    }

执行命令时出现以下错误。

关键字附近的语法不正确 "用户":插入用户(登录, 密码、状态)值(@login, @password,@status)

请问我该如何解决这个问题?

编辑:添加了丢失的参数值。.

    comm.Parameters["@login"].Value = this.Username;
    comm.Parameters["@password"].Value = this._password;
    comm.Parameters["@status"].Value = this.Status;

SQL 错误:关键字“User”附近的语法不正确

User是一个

保留关键字,因此您必须使用方括号来明确表示您指的是名为"User"的对象,即使用[User]而不是User

User 是一个 t-sql 保留关键字。将其括在方括号中应该可以解决这个问题。例如插入 [用户]

数据库运行查询。您可以使用 declare sql 关键字来定义变量并为其提供值。如果需要计算变量值,请在 conn 处设置断点。打开,然后使用局部变量窗口查看要传入的值。您可以使用的另一个工具是Sql Profiler。您可以启动跟踪,然后运行程序。运行已发布的代码后,您应该能够在配置文件中看到已执行的查询。

所有这些都应该可以帮助您找出当异常未提供足够信息时 sql 出了什么问题。

Sql Server Management Studio 应该在 sql 语句中突出显示 User 关键字,轻松显示您需要在它周围加上括号,如下所示:[用户]

User是一个SQL保留关键字。将其括在方括号中应该可以解决这个问题。例如INSERT INTO [User]

很容易显示您需要在它周围加上括号,如下所示:[用户]