我正在使用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'
答案 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 ”。其他参数也一样。