SQL错误:关键字"用户"附近的语法不正确

Blu*_*ird 33 c# sql t-sql sql-server reserved-words

我使用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();
    }
Run Code Online (Sandbox Code Playgroud)

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

关键字'User'附近的语法不正确:INSERT INTO用户(登录名,密码,状态)VALUES(@ login,@ password,@ status)

我该怎么解决这个问题?

编辑: 添加了错过的参数值..

    comm.Parameters["@login"].Value = this.Username;
    comm.Parameters["@password"].Value = this._password;
    comm.Parameters["@status"].Value = this.Status;
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 79

User是一个保留关键字,所以你必须使用方括号使它明确表示你的意思是名为"用户" 的对象,即使用[User]而不是User.


And*_*son 5

用户是t-sql 保留的关键字.用方括号括起来应该解决这个问题.例如INSERT INTO [用户]