reservadas palabras c# sql sql-server tsql reserved-words

c# - palabras reservadas sql server



Error de SQL: sintaxis incorrecta cerca de la palabra clave ''Usuario'' (3)

El usuario es una palabra clave reservada t-sql. Encerrarlo entre corchetes debería resolver esto. Por ejemplo, INSERT INTO [User]

Estoy usando SQL para insertar datos en el archivo de base de datos SQL usando C # de la siguiente manera.

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

Recibo el siguiente error cuando se ejecuta el comando.

Sintaxis incorrecta cerca de la palabra clave ''Usuario'' .: INSERT INTO User (login, password, status) VALUES (@login, @password, @status)

¿Cómo puedo resolver esto por favor?

editar: valores de parámetros perdidos agregados.

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


ejecuta tu consulta en la base de datos. Puede usar la palabra clave declare sql para definir sus variables y darles valores. Si necesita averiguar los valores de las variables, configure un punto de interrupción en conn.Open y luego use la ventana de locales para ver qué valores está ingresando. Otra herramienta a su disposición es el Sql Profiler. Puede iniciar un seguimiento y luego ejecutar su programa. Debería poder ver la consulta ejecutada en el perfil después de que se haya ejecutado el código que ha publicado.

Todo esto debería ayudarlo a descubrir qué es lo que está mal con su sql cuando la excepción no proporciona suficiente información.

El Sql Server Management Studio debería haber resaltado la palabra clave User en su declaración sql, mostrando fácilmente que necesita corchetes a su alrededor así: [User]


User es una palabra clave reservada , por lo que debe usar corchetes para que sea explícito que quiere decir el objeto llamado "Usuario", es decir, use [User] lugar de User .