在ListView中添加新项目,然后更新到数据库

时间:2015-09-16 23:00:55

标签: 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 , [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中有两个项目,并且我有一个更新按钮。当我点击更新按钮时,我想添加一个新项目,然后添加到数据库,但当我得到数据时,新的添加项目及其加倍,但2个旧项目消失了。

1 个答案:

答案 0 :(得分:0)

尝试以下内容;

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();
}