2014-04-30 1 views
0

Je crée un formulaire d'inscription Visual Studios avec MySql et je continue à obtenir l'erreur:MySqlException était non gérée pendant insert

Fatal error encountered during command execution

Toute idée est la cause?

MySqlConnection connection; 
string cs = @"server=127.0.0.1;userid=root;password=welcome;database=userinfo"; 
connection = new MySqlConnection(cs); 
connection.Open(); 

MySqlCommand command = new MySqlCommand(); 
string SQL = "INSERT INTO `users` (`userid`, `email`, `passone`, `passtwo`,'lastname','firstname') VALUES (@userid_txt, @email_txt, @passone_txt, @passtwo_txt, @lastname_txt, @firstname_txt)"; 
command.CommandText = SQL; 
command.Parameters.AddWithValue("userid", userid_txt); 
command.Parameters.AddWithValue("email", email_txt); 
command.Parameters.AddWithValue("passone", passone_txt); 
command.Parameters.AddWithValue("passtwo", passtwo_txt); 
command.Parameters.AddWithValue("lastname", lastname_txt); 
command.Parameters.AddWithValue("firstname", firstname_txt); 
command.Connection = connection; 

command.ExecuteNonQuery(); 

connection.Close(); 

Les états d'exception interne:

Parameter '@userid_txt' must be defined

+1

Lire (et signaler) le message d'erreur * full *. – user2864740

+0

Sous le détail de la vue et l'onglet InnerException, il est indiqué "Paramètre '@userid_txt" doit être défini " – Bendlino

+1

Donc, il y a le problème! Maintenant, * lisez * attentivement le message d'erreur et regardez les * noms des paramètres * utilisés. – user2864740

Répondre

1

Lorsque vous utilisez des paramètres dans des déclarations comme:

.. VALUES (@param1, @param2, ... 

il devrait y avoir un paramètre correspondant. ligne AddXXX() qui correspond au texte de paramètres, par exemple:

command.Parameters.AddWithValue("param1", somevalue); 
command.Parameters.AddWithValue("param2", othervalue); 

Dans votre cas, vous avez des balises de paramètres désadaptation:

.. VALUES (@userid_txt, @email_txt, ... 

où "userid_txt" doit être spécifié dans la collection Paramètres:

command.Parameters.AddWithValue("userid_txt", userid_txt); 

vous avez "userid" non "userid_txt". Idem pour les autres paramètres.

Questions connexes