Erro de SQL: syntax incorreta perto da palavra-chave ‘Usuário’

Eu estou usando o SQL para inserir dados no arquivo de database SQL usando C # da seguinte maneira.

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(); } 

Estou recebendo o seguinte erro quando o comando está sendo executado.

Sintaxe incorreta perto da palavra-chave ‘Usuário’ .: INSERT INTO Usuário (login, senha, status) VALUES (@login, @password, @status)

Como posso resolver isso por favor?

edit: valores de parâmetros perdidos adicionados

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

User é uma palavra-chave reservada , portanto, você deve usar colchetes para tornar explícito que você quer dizer o object chamado “Usuário”, ou seja, usar [User] vez de User .

O usuário é uma palavra – chave reservada do t-sql. Colocá-lo entre colchetes deve resolver isso. Por exemplo, INSERT INTO [User]

execute sua consulta no database. Você pode usar a palavra-chave declare sql para definir suas variables ​​e fornecer valores a elas. Se você precisar descobrir os valores de variables, defina um ponto de interrupção em conn.Open e, em seguida, use a janela locals para ver quais valores você está passando. Outra ferramenta à sua disposição é o Sql Profiler. Você pode iniciar um rastreamento e executar seu programa. Você deve conseguir ver a consulta como executada no perfil depois que o código que você publicou tiver sido executado.

Tudo isso deve ajudá-lo a descobrir o que está errado com o seu SQL quando a exceção não fornecer informações suficientes.

O Sql Server Management Studio deve ter destacado a palavra-chave User em sua instrução sql, mostrando facilmente que você precisa de colchetes em torno dela assim: [User]