我将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 + ")";
答案 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注入以及此类错误。像这样写的代码应该可以工作。