2010-03-18 3 views
2

Je suis en train d'exécuter une instruction INSERT sur une mySQL DB en C#:Erreur fatale rencontrée lors de l'exécution de la commande avec un mySQL INSERT

MySqlConnection connection = new MySqlConnection("SERVER=" + _dbConnection + ";" + 
    "DATABASE=" + _dbName + ";" + 
    "PORT=" + _dbPort + ";" + 
    "UID=" + _dbUsername + ";" + 
    "PASSWORD=" + _dbPassword + ";"); 
MySqlDataAdapter adapter; 
DataSet dataset = new DataSet(); 
command = new MySqlCommand(); 
command.Connection = connection; 
command.CommandText = "INSERT INTO plugins (pluginName, enabled) VALUES (@plugin,@enabled)"; 
command.Parameters.AddWithValue("@name", "pluginName"); 
command.Parameters.AddWithValue("@enabled", false); 
adapter = new MySqlDataAdapter(command); 
adapter.Fill(dataset); 

Le tableau plugin se compose de deux colonnes: pluginName (varchar (50)) et activé (booléen).

Echoue avec l'erreur: mysql Erreur fatale rencontrée lors de l'exécution de la commande. Des idées sur pourquoi cela échouerait?

Répondre

4

Vous semblez être en utilisant @plugin dans la requête mais @name dans les paramètres, bien que je me attends un meilleur message d'erreur si c'était le seul problème!

+0

wow, merci. Je ne peux pas croire que j'ai raté ça! – Brian

+0

@Hiyasat: Ajouter un commentaire au lieu d'éditer la réponse. –

+0

Si vous explorez l'InnerException de l'Exception (ses exceptions jusqu'au bout ...) vous trouvez finalement la source du problème; dans mon cas, un paramètre non défini (typo). – fableal

0

L'erreur "Erreur irrécupérable rencontrée lors de l'exécution de la commande" semble être pour les erreurs de syntaxe générales dans la ligne CommandText.

Par exemple, les éléments suivants me trébuché pendant un certain temps:

[email protected],@[email protected],@last... 

Attention à ces virgules! Il devrait y avoir un après @email:

[email protected],@email,@first,@last... 
Questions connexes