首页 >数据库 >mysql教程 >为什么带参数的 SQL INSERT 语句失败,如何修复它?

为什么带参数的 SQL INSERT 语句失败,如何修复它?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-01 07:48:11719浏览

Why is my SQL INSERT statement with parameters failing, and how can I fix it?

SqlParameter 参数 - 使用参数插入

问题:

尝试使用 SQL 将记录插入数据库时命令,代码执行失败。提供的代码包括:

SqlCommand comand = new SqlCommand("INSERT INTO Product_table Values(@Product_Name,@Product_Price,@Product_Profit,@p)", connect);
SqlParameter ppar = new SqlParameter();
ppar.ParameterName = "@Product_Name";
ppar.Value = textBox1.Text;
MessageBox.Show("Done");
comaand.Parameters.Add(ppar);

答案:

要使用参数成功插入记录,应使用以下代码使用:

SqlCommand cmd = new SqlCommand("INSERT INTO Product_table Values(@Product_Name, @Product_Price, @Product_Profit, @p)", connect);
cmd.Parameters.Add("@Product_Name", SqlDbType.NVarChar, ProductNameSizeHere).Value = txtProductName.Text;
cmd.Parameters.Add("@Product_Price", SqlDbType.Int).Value = txtProductPrice.Text;
cmd.Parameters.Add("@Product_Profit", SqlDbType.Int).Value = txtProductProfit.Text;
cmd.Parameters.Add("@p", SqlDbType.NVarChar, PSizeHere).Value = txtP.Text;
cmd.ExecuteNonQuery();

说明:

  • 避免使用 AddWithValue,因为它可能会导致数据类型转换问题。
  • 指定列INSERT 语句中的名称(例如 @Product_Name、@Product_Price)并使用提供其相应的值cmd.Parameters.Add(...).
  • 使用SqlDbType指定每个参数的数据类型。
  • 使用cmd.ExecuteNonQuery()执行命令并将记录插入数据库.

以上是为什么带参数的 SQL INSERT 语句失败,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn