2015-06-11 6 views
-1

В моем datagridview есть некоторые данные. Я хочу вставить все эти данные сразу в базу данных с datagridview с использованием LINQ. Но его нельзя было вставить.Вставка данных в базу данных - 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

Смежные вопросы