如何在数据库中插入绑定列和取消绑定列datagridview值

时间:2014-12-28 14:36:05

标签: c# datagridview

我将datagirdview列值插入数据库。 Datagridview有4列第1列绑定到数据库表。我写了这个查询将所有这些数据插入到我的表中,但是我收到错误“无效的列名'w'”。有人帮我搞清楚。在数据库表中,我有以下列:SupplierId,Item,Quantity,PricePerItem,Total,BillNo ..我使用的查询是:

string q = @" INSERT INTO PurchaseInvo(SupplierId,Item,Quantity,PricePerItem,Total,BillNo) VALUES (" + comboBox1.Text + ", " + dataGridView1.Rows[i].Cells["Item"].Value + ", " + dataGridView1.Rows[i].Cells["Quantity"].Value + ", " + dataGridView1.Rows[i].Cells["PricePerItem"].Value + ", " + dataGridView1.Rows[i].Cells["Total"].Value + ", " + bill + ")";

1 个答案:

答案 0 :(得分:0)

string q = 
@" INSERT INTO PurchaseInvo 
         (SupplierId, Item, Quantity, PricePerItem, Total, BillNo) 
    VALUES 
         (@SupplierID, @Item, @Quantity, @PricePerItem, @Total, @Bill)";

SqlCommand cmd = new SqlCommand(q, connectionString);

cmd.Parameters.AddWithValue("@SupplierID", comboBox1.Text);
cmd.Parameters.AddWithValue("@Item", dataGridView1.Rows[i].Cells["Item"].Value);
cmd.Parameters.AddWithValue("@Qauntity", dataGridView1.Rows[i].Cells["Quantity"].Value);
cmd.Parameters.AddWithValue("@PricePerItem", dataGridView1.Rows[i].Cells["PricePerItem"].Value);
cmd.Parameters.AddWithValue("@Total", dataGridView1.Rows[i].Cells["Total"].Value);
cmd.Parameters.AddWithValue("@Bill", bill);

cmd.ExecuteNonQuery();

您应该始终使用sql命令参数。这将阻止您进行sql注入以及此类错误。像这样写的代码应该可以工作。