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插入我的数据库的所有数据,即使我做了循环但仍然只添加了一行。
答案 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();”在循环内。您必须为每一行创建一个新实体。