c# mysql 1062_带有MySQL INSERT参数的C#

在使用C#连接MySQL数据库进行INSERT操作时,遇到1062错误,提示Person列不能为NULL。尝试了不同参数绑定方式,包括直接插入字符串和使用预处理语句,但出现了SQL注入风险或参数添加错误。最终通过修正参数名称为问号形式并正确设置参数值,成功解决问题。
摘要由CSDN通过智能技术生成

祝大家好,我正在使用Visual C#2010和MySQL版本5.1.48社区。我希望你能帮我解决这个问题。我发现它不适合我。我错过了什么?

string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString;

MySqlConnection conn = new MySqlConnection(connString);

conn.Open();

MySqlCommand comm = conn.CreateCommand();

comm.CommandText = "INSERT INTO room(person,address) VALUES(@person, @address)";

comm.Parameters.Add("@person", "Myname");

comm.Parameters.Add("@address", "Myaddress");

comm.ExecuteNonQuery();

conn.Close();

当我尝试编译它。它说:

Person column cannot be null

编辑:

但是,当我尝试这个代码。

comm.CommandText = "INSERT INTO room(person,address) VALUES('Myname', 'Myaddress')";

但是这段代码很容易受到sql注入攻击,但它有效,不会给我一个错误。

编辑:

我试着用这个。我发现它here所以我认为它会工作,但给了我这个错误

Index (zero based) must be greater than or equal to zero and less than

the size of the argument list.

任何想法?

string a = "myname";

MySqlCommand cmd = new MySqlCommand();

cmd.Connection = conn;

cmd.CommandText = "INSERT INTO room(person,address) VALUES(?,?)";

//cmd.Prepare();

cmd.Parameters.Add("person", MySqlDbType.VarChar).Value = a;

cmd.Parameters.Add("address", MySqlDbType.VarChar).Value = "myaddress";

cmd.ExecuteNonQuery(); // HERE I GOT AN EXCEPTION IN THIS LINE

任何帮助将非常感激。

编辑:

解决了

我用过这段代码:

cmd.CommandText = "INSERT INTO room(person,address) VALUES(?person,?address)";

cmd.Parameters.Add("?person", MySqlDbType.VarChar).Value = "myname";

cmd.Parameters.Add("?address", MySqlDbType.VarChar).Value = "myaddress";

cmd.ExecuteNonQuery();

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值