Erreur SQL: syntaxe Incorrecte près du mot clé 'Utilisateur'
Je suis l'aide de SQL pour insérer les données dans la Base de données SQL fichier à l'aide de 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 lorsque la commande est en cours d'exécution.
Syntaxe incorrecte près du mot clé
'Utilisateur'.: INSERT INTO Utilisateur (login,
le mot de passe, statut) VALUES (@login,
@mot de passe, @status)
Comment puis-je résoudre ce s'il vous plaît?
edit:
manqué des valeurs de paramètre supplémentaire..
comm.Parameters["@login"].Value = this.Username;
comm.Parameters["@password"].Value = this._password;
comm.Parameters["@status"].Value = this.Status;
- Comment est-ce que C# erreur? Sonne comme une erreur SQL.
- re-marqué; mieux?
- Je parlais sur le topic pas les balises.
- double possible de Simple instruction SELECT échoue avec une erreur de syntaxe, pourquoi?
Vous devez vous connecter pour publier un commentaire.
User
est un mot clé réservé, donc vous devez utiliser des crochets pour le rendre plus explicite le fait que vous dire la objet nommé "Utilisateur", à savoir l'utilisation[User]
au lieu deUser
.Utilisateur est un t-sql mot clé réservé. Plaçant entre crochets devrait résoudre cela. E. g INSERT INTO [Utilisateur]
exécuter votre requête sur la base de données. Vous pouvez utiliser le déclarer mot clé sql pour définir vos variables et de leur donner des valeurs. Si vous avez besoin de comprendre les valeurs de variables, définissez un point d'arrêt à la conn.Ouvrez et utilisez ensuite les habitants de la fenêtre pour voir quelles sont les valeurs que vous transmettez. Un autre outil à votre disposition est le générateur de profils Sql. Vous pouvez démarrer une trace puis exécutez votre programme. Vous devriez être capable de voir la requête exécutée dans le profil d'après le code que vous avez posté est mis à courir.
Tout cela devrait vous aider à comprendre quel est le problème avec votre sql lorsque l'exception ne fournissent pas assez d'informations.
Sql Server Management Studio devrait avoir mis en évidence l'Utilisateur mot-clé dans votre requête sql, on peut facilement montrer que vous avez besoin des parenthèses autour d'elle de la sorte: [Utilisateur]