47 votes

Erreur SQL : Syntaxe incorrecte près du mot-clé 'Utilisateur'

J'utilise SQL pour insérer des données dans un fichier de base de données SQL en utilisant C# comme suit.

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

J'obtiens l'erreur suivante lors de l'exécution de la commande.

Syntaxe incorrecte près du mot-clé 'Utilisateur'. : INSÉRER DANS Utilisateur (connexion, mot de passe, statut) VALEURS (@login, @mot de passe, @statut)

Comment puis-je résoudre cela s'il vous plaît?

Éditer: valeurs de paramètres manquées ajoutées.

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

116voto

Marc Gravell Points 482669

User est un mot -clé réservé, vous devez donc utiliser des crochets pour indiquer clairement que vous voulez dire l' objet nommé "Utilisateur", c'est-à-dire utiliser [User] au lieu de User .

8voto

Andy Johnson Points 4683

L'utilisateur est un mot-clé réservé t-sql . Le mettre entre crochets devrait résoudre ce problème. Par exemple, INSÉRER DANS [Utilisateur]

1voto

Anas Points 1

User est un mot-clé réservé à SQL. Le mettre entre crochets devrait résoudre ce problème. Par exemple INSERT INTO [User]

montrant facilement que vous avez besoin de crochets comme ceci : [Utilisateur]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X