如何插入数据库多个gridview选择

时间:2016-12-27 18:42:47

标签: c# sql linq datagridview

  siparisDetayy order = new siparisDetayy();
    public void gridControl()
    {       
        for (int i = 0; i < dtGridSiparis.RowCount-1; i++)
            {
            order.productID =(dtGridSiparis.Rows[i].Cells[0].Value).ToString();
            order.productName = dtGridSiparis.Rows[i].Cells[1].Value.ToString();
            order.customer = dtGridSiparis.Rows[i].Cells[2].Value.ToString();
            order.faturaNo = dtGridSiparis.Rows[i].Cells[3].Value.ToString();
            order.miktar = dtGridSiparis.Rows[i].Cells[4].Value.ToString();
            order.price = dtGridSiparis.Rows[i].Cells[5].Value.ToString();
            }
            ctx.siparisDetayys.InsertOnSubmit(order);
            ctx.SubmitChanges();
    }
  

我尝试使用LINQ插入我的数据库的所有数据,即使我做了循环但仍然只添加了一行。

2 个答案:

答案 0 :(得分:0)

是的,因为您实际上只插入了一条order条记录,并希望您最后一次循环中收集的是最后一条记录。将保存移动到循环内部的DB代码行,如下所示

    for (int i = 0; i < dtGridSiparis.RowCount-1; i++)
        {
        order.productID =(dtGridSiparis.Rows[i].Cells[0].Value).ToString();
        order.productName = dtGridSiparis.Rows[i].Cells[1].Value.ToString();
        order.customer = dtGridSiparis.Rows[i].Cells[2].Value.ToString();
        order.faturaNo = dtGridSiparis.Rows[i].Cells[3].Value.ToString();
        order.miktar = dtGridSiparis.Rows[i].Cells[4].Value.ToString();
        order.price = dtGridSiparis.Rows[i].Cells[5].Value.ToString();

        //Save or Insert the record to database
        ctx.siparisDetayys.InsertOnSubmit(order);
        ctx.SubmitChanges();
        }

答案 1 :(得分:0)

Rahul说了什么,还添加了第一行“siparisDetayy order = new siparisDetayy();”在循环内。您必须为每一行创建一个新实体。