当我尝试插入数据库时,出现错误:必须定义参数“@email” 我的代码:
MySqlCommand cmd = new MySqlCommand("INSERT INTO users VALUES(@email,@password,@firstName,@LastName,@UserID,@address,@birthday,0)", con);
cmd.Parameters.AddWithValue(@email, email);
cmd.Parameters.AddWithValue(@password, password);
cmd.Parameters.AddWithValue(@firstName, firstName);
cmd.Parameters.AddWithValue(@LastName, LastName);
cmd.Parameters.AddWithValue(@UserID,UserID);
cmd.Parameters.AddWithValue(@address, address);
cmd.Parameters.AddWithValue(@birthday, birthday);
/*THE PROBLEM ISNT IN THE DATABASE,THE FOLOOW INSERT STATMENT WORK!"*/
// MySqlCommand cmd = new MySqlCommand("INSERT INTO users VALUES('evyataresdxez','sdfs','sdfsdf','sdds',33,'sdfsdf','232',0)", con);
con.Open();
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
我的数据库/代码没有问题,因为注释中的代码运行良好。谢谢
最佳答案
您需要引用您的参数名称。现在,您将参数值作为参数名称传递:
cmd.Parameters.AddWithValue("email", email);
cmd.Parameters.AddWithValue("password", password);
cmd.Parameters.AddWithValue("firstName", firstName);
cmd.Parameters.AddWithValue("LastName", LastName);
cmd.Parameters.AddWithValue("UserID", UserID);
cmd.Parameters.AddWithValue("address", address);
cmd.Parameters.AddWithValue("birthday", birthday);
这仅按照您的方式进行编译,因为变量名称之前的 @
符号是 valid syntax并且您碰巧将变量命名为与参数名称相同。
关于c# - 必须定义参数 '@email',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856148/