插入期间未处理MySqlException

时间:2014-04-30 03:13:08

标签: c# mysql ado.net

我正在使用MySql创建Visual Studios注册表单,并且我一直收到错误:

  

命令执行期间遇到致命错误

知道造成这种情况的原因是什么?

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

内部异常说明:

  

必须定义参数'@userid_txt'

1 个答案:

答案 0 :(得分:1)

在语句中使用参数时:

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

应该有相应的参数。与参数文本匹配的AddXXX()行,例如:

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

在您的情况下,您有不匹配的参数标记:

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

其中需要在Parameters集合中指定“userid_txt”:

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

您有“用户ID ”而不是“ userid_txt ”。其他参数也一样。