Вставка нескольких строк за один раз и ни одна строка не вставляется, если есть проблема
Всем Привет,
Я хочу вставить несколько строк в таблицу при нажатии кнопки.
Процесс, который я использовал, проходит через каждую строку gridview и вставляет данные в таблицу. Но если есть какая-то проблема между процессами, то половина строк вставляется, а половина-нет. Но это должно быть либо все строки вставлены, либо ни одной.
Я не могу придумать, как этого добиться. Кто-нибудь может помочь с какой-нибудь идеей? Я использую access 2013 с asp.net.
Что я уже пробовал:
На данный момент это мой код.
foreach (GridViewRow row in grid_score.Rows) { string revw_date = DateTime.Today.ToString(); string emp_fname = row.Cells[0].Text; string emp_lname = row.Cells[1].Text; string revwr_name = row.Cells[6].Text; string intscore = row.Cells[8].Text; //insert into score table sql = "INSERT INTO TABLENAME VALUES('" + revw_date + "',(SELECT EMP_ID FROM USER_DETAIL WHERE FIRST_NAME='" + emp_fname + "' AND LAST_NAME='" + emp_lname + "'),(SELECT REVIEWER_ID FROM USER_DETAIL WHERE REVIEWER_NAME='" + revwr_name + "')," + intscore + ")"; OleDbCommand cmd = new OleDbCommand(sql, conn); int count = cmd.ExecuteNonQuery(); if (count == 1) { System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", "alert('Data inserted successfully');", true); } else { System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", "alert('Sorry! Data cannot be submitted. Try again.');", true); } }
Как видно из кода, сообщение об успехе будет отображаться каждый раз, когда будет вставлена строка. Этого не должно быть дела.
OriginalGriff
Существует решение, встроенное во все системы БД: транзакции.