2015-06-11 147 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