c# - 必须定义参数 '@email'

标签 c# mysql asp.net mysql-connector

当我尝试插入数据库时​​,出现错误:必须定义参数“@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/

相关文章:

c# - Azure 部署运行时异常

c# - 为什么这段代码不能在 .NET 4.0 的 VS2010 中编译?

asp.net - 使用不同用户登录时出现 Azure 错误

asp.net - Docker 错误 : failed to register layer: Error processing tar file(exit status 1): "...msader15.dll.mui: no such file or directory"

asp.net - 如何验证用户在 CheckBoxList 中至少选择了一个复选框?

c# - 具有关系的简单 ORM

C# 在网络浏览器中打开 .xls 文件时,它会打开一个 excel 实例

php - 如何查询一对多关系

mysql - Sequelize 和 mysql : clause `[tableName].deleted_at IS NULL` getting added automatically

mysql - 使用 JOIN 避免 SELECT-in-SELECT 语句