如何将值插入到c#编码的选定列中?

时间:2012-11-03 08:07:07

标签: c# asp.net sql-server

我在SQL Server中有一个包含许多列的表。现在我想只在选定的列中添加值,但是当我这样做时,它会引发异常,如下所示:

  

INSERT语句中的列数少于指定的值   在VALUES条款中。 VALUES子句中的值的数量必须为   匹配INSERT语句中指定的列数。)

如何处理?

这是我的代码:

SqlConnection con = getDbConnection();
SqlCommand cmd = new SqlCommand("insert into pi_project_info(control#,pro_name,cust_name,cust_order,order_dt,req_dt,notes) values ('" + tb_control.Text + "','" + tb_project.Text + "','" + ddl_customer_name.Text + "','" + tb_order_no.Text + "','" + dp_order.Text + "','" + dp_order.Text + "','" + dp_req_del.Text + "','" + tb_notes.Text + "' )", con);

 cmd.ExecuteNonQuery();
 MessageBox.Show("Saved successfully");

2 个答案:

答案 0 :(得分:1)

你得到的错误非常清楚。错误信息永远不会存在。

  

为什么我收到此错误?

因为您要将7个值插入7列。值必须与INSERT语句中列出的列号匹配。

  

如何处理?

仅将7个值插入7列。或者您可能在列列表中缺少列名。

顺便说一句,您的代码易受攻击SQL injection。尝试使用参数化查询。有关更多信息,请参阅此文章:

答案 1 :(得分:1)

你有一份副本:

 dp_order.Text + "','" + dp_order.Text

只需放一个,然后就行了。但是考虑使用Sql参数来避免SQL注入