C# 在ListView中添加新项,然后更新到数据库
下面是我在ListView中添加项然后添加到数据库的代码C# 在ListView中添加新项,然后更新到数据库,c#,listview,C#,Listview,下面是我在ListView中添加项然后添加到数据库的代码 for (int i = 0; i <= ListView1.Items.Count - 1; i++) { string cd = "Update ProductSold set [BillNo] = '" + txtBillNoE.Text + "',[DishName] = @d2, [DishRate] = @d3 , [Quantity] = @d4 , [Tot
for (int i = 0; i <= ListView1.Items.Count - 1; i++)
{
string cd = "Update ProductSold set [BillNo] = '" + txtBillNoE.Text + "',[DishName] = @d2, [DishRate] = @d3 , [Quantity] = @d4 , [TotalAmount] = @d5 where BillNo = " + txtBillNoE.Text + "";
cmd = new OleDbCommand(cd);
cmd.Connection = con;
cmd.Parameters.AddWithValue("d2", ListView1.Items[i].SubItems[1].Text);
cmd.Parameters.AddWithValue("d3", ListView1.Items[i].SubItems[2].Text);
cmd.Parameters.AddWithValue("d4", ListView1.Items[i].SubItems[3].Text);
cmd.Parameters.AddWithValue("d5", ListView1.Items[i].SubItems[4].Text);
cmd.ExecuteNonQuery();
}
我将在我的程序中为您提供一个场景,以明确问题,我的ListView中已经有两个项目,并且我有一个更新按钮。当我点击更新按钮时,我想添加一个新项目,然后添加到数据库中,但当我获得数据时,新的添加项目和它的两倍,但两个旧项目消失了 尝试以下方法
for (int i = 0; i <= ListView1.Items.Count - 1; i++)
{
string cd = @"INSERT INTO ProductSold (BillNo, DishName, DishRate, Quantity, TotalAmount)
VALUES (@BillNo, @DishName, @DishRate, @Quantity, @TotalAmount)";
cmd = new OleDbCommand(cd);
cmd.Connection = con;
cmd.Parameters.AddWithValue("@BillNo", txtBillNoE.Text);
cmd.Parameters.AddWithValue("@DishName", ListView1.Items[i].SubItems[1].Text);
cmd.Parameters.AddWithValue("@DishRate", ListView1.Items[i].SubItems[2].Text);
cmd.Parameters.AddWithValue("@Quantity", ListView1.Items[i].SubItems[3].Text);
cmd.Parameters.AddWithValue("@TotalAmount", ListView1.Items[i].SubItems[4].Text);
cmd.ExecuteNonQuery();
}
是的,因为下一次更新将覆盖这些值。如何解决此问题,先生?如果要保留旧值,请使用Insert而不是update。如何解决?上面的代码是用于插入的代码。@JohnKennethdeLara没有用于更新的代码。.我尝试了这个,但是是的,旧的项目保留了,但是新的更新项目增加了一倍。我已经自己解决了。您给了我一个线索,先生,谢谢!: