2016-12-27 51 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