将listview中的项插入数据库C# for(int i=0;i

将listview中的项插入数据库C# for(int i=0;i,c#,C#,我不知道clear()有什么作用,但很可能是关闭了连接或产生了其他副作用。我会将clear()移动到for循环的外部 for (int i = 0; i <= ListView1.Items.Count - 1; i++) { string cd = "Insert Into ProductSold(BillNo,DishName,DishRate,Quantity,TotalAmount) VALUES (@

我不知道
clear()
有什么作用,但很可能是关闭了连接或产生了其他副作用。我会将
clear()
移动到
for
循环的外部

   for (int i = 0; i <= ListView1.Items.Count - 1; i++)
                {

                    string cd = "Insert Into ProductSold(BillNo,DishName,DishRate,Quantity,TotalAmount) VALUES (@d1,@d2,@d3,@d4,@d5)";
                    cmd = new OleDbCommand(cd);
                    cmd.Connection = con;
                    cmd.Parameters.AddWithValue("d1", txtBillNo.Text);
                    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();
                    clear();


                }

我不知道
clear()
的作用是什么,但很可能是关闭连接或产生其他副作用。我会将
clear()
移动到
for
循环的外部

   for (int i = 0; i <= ListView1.Items.Count - 1; i++)
                {

                    string cd = "Insert Into ProductSold(BillNo,DishName,DishRate,Quantity,TotalAmount) VALUES (@d1,@d2,@d3,@d4,@d5)";
                    cmd = new OleDbCommand(cd);
                    cmd.Connection = con;
                    cmd.Parameters.AddWithValue("d1", txtBillNo.Text);
                    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();
                    clear();


                }

我想你可以用foreach循环

试试这个

const string cd = @"Insert into
  ProductSold (BillNo,DishName,DishRate,Quantity,TotalAmount) 
  VALUES (@d1,@d2,@d3,@d4,@d5)";
var cmd = new OleDbCommand(cd) { Connection = con };

foreach (var l in Listview1.Items)
{
   cmd.Parameters.Clear();
   cmd.Parameters.AddWithValue("d1", txtBillNo.Text);
   cmd.Parameters.AddWithValue("d2", l.SubItems[1].Text);
   cmd.Parameters.AddWithValue("d3", l.SubItems[2].Text);
   cmd.Parameters.AddWithValue("d4", l.SubItems[3].Text);
   cmd.Parameters.AddWithValue("d5", l.SubItems[4].Text);
   cmd.ExecuteNonQuery();
}
clear();

我想你可以用foreach循环

试试这个

const string cd = @"Insert into
  ProductSold (BillNo,DishName,DishRate,Quantity,TotalAmount) 
  VALUES (@d1,@d2,@d3,@d4,@d5)";
var cmd = new OleDbCommand(cd) { Connection = con };

foreach (var l in Listview1.Items)
{
   cmd.Parameters.Clear();
   cmd.Parameters.AddWithValue("d1", txtBillNo.Text);
   cmd.Parameters.AddWithValue("d2", l.SubItems[1].Text);
   cmd.Parameters.AddWithValue("d3", l.SubItems[2].Text);
   cmd.Parameters.AddWithValue("d4", l.SubItems[3].Text);
   cmd.Parameters.AddWithValue("d5", l.SubItems[4].Text);
   cmd.ExecuteNonQuery();
}
clear();

你可以使用foreach loop你可以使用foreach loop我认为你是对的,它清除了连接内容,这可能会导致关闭连接,先生!它成功了:)非常感谢!你能给我一些建议吗,先生listview1.item是一个对象,您试图用字符串调用它,因此foreach每次都会帮助您调用listview中的字符串。。正如@RichardSchneider所说,clear将关闭连接,因此它不会再次循环。。我认为您是对的,它正在清除连接内容,这可能会导致连接被关闭,长官!成功了:)非常感谢!你能给我一些建议吗,先生listview1.item是一个对象,您试图用字符串调用它,因此foreach每次都会帮助您调用listview中的字符串。。正如@RichardSchneider所说,clear将关闭连接,因此它不会再次循环。。是的,先生,您是对的。问题很明显。是的,先生,你说得对。问题很明显。为此受到赞扬。