2016-12-27 49 views
0
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插入我的所有数据的databese,即使我做了环,但仍然只有一行增加。如何插入数据库的多个GridView控件,选项

+0

我很清楚地看到你只插入一个对象,尝试一个对象的集合,然后使用循环/ linq或其他插入它们。 –

+0

'order.price'是字符串? – Plutonix

回答

0

什么拉胡尔说,也可加在第一行“siparisDetayy为了=新siparisDetayy();”在循环内。你必须为每一行创建一个新的实体。

+0

非常感谢 –

0

是的,这是因为你实际上只插入一个order记录,并希望从循环上次迭代中收集最后一个记录。移动保存到数据库的代码行内循环像下面

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

是的,我已经完成了,但它显示我errorMessage:“已存在的实体无法添加。” –

+0

@ZulfikarBakır,是的,如果你的网格行重复,因为你没有检查。那么这是一个单独的问题,因此单独发布。 – Rahul