2015-06-11 148 views
-1

我的datagridview中有一些數據。我想用LINQ從datagridview一次將所有的數據插入到數據庫中。但是,它不能被插入。將數據插入數據庫 - LINQ

這裏是我的代碼:

DetailTransaction dt = new DetailTransaction(); 

for (int i = 0; i < dataGridView1.Rows.Count; i++) 
{ 
    dt.TransactionID = labelID.Text; 
    dt.ProductID = dataGridView1.Rows[i].Cells[0].Value.ToString(); 
    dt.Quantity = int.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString()); 
} 

dc.DetailTransactions.InsertOnSubmit(dt); 
dc.SubmitChanges(); 

誰能告訴我什麼是正確的代碼?

回答

1

需要填充的DetailTransaction集合,然後用InsertAllOnSubmit,如:

List<DetailTransaction > list = new List<DetailTransaction>(); 

for (int i = 0; i < dataGridView1.Rows.Count; i++) 
{ 
    DetailTransaction dt = new DetailTransaction(); 
    dt.TransactionID = labelID.Text; 
    dt.ProductID = dataGridView1.Rows[i].Cells[0].Value.ToString(); 
    dt.Quantity = int.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString()); 
    list.Add(dt); 
} 
dc.DetailTransactions.InsertAllOnSubmit(list); 
dc.SubmitChanges(); 

以您目前的代碼,你將最終插入到數據庫中單列,並在該行會持有的記錄最後一行在dataGridView1

+0

我試過這段代碼。但是有一些錯誤信息:對象引用未設置爲對象的實例。此消息在dt.ProductID = dataGridView1.Rows [i] .Cells [0] .Value.ToString(); 錯誤在哪裏?在datagriedview中? Thx –

+0

@KemikoSetiawan,這意味着'Cell [0]'或某行中有一個空值,顯式檢查它,然後調用'ToString' – Habib