Выполнение хранимой процедуры в цикле - C#
Формулировка задачи:
нужно создать одну "главную" таблицу, и неопределенное количество вспомогательных таблиц, с ключом от главной таблицы. Первая процедура проходит, при выполнении процедуры в цикле, выполнение уходит в catch, и откат транзакции.
SqlTransaction txn = sqlconn.BeginTransaction(System.Data.IsolationLevel.Serializable); try { sqlcomm.CommandType = CommandType.StoredProcedure; sqlcomm.CommandText = "AddTP1"; //добавление параметров процедуры key = Convert.ToInt32(sqlcomm.ExecuteScalar()); //этот ключ будет испольхзоваться в таблицах добавляемых в цикле for ( int i = 0; i < dataGridView1.RowCount-1; i++) { sqlcomm.CommandText = "AddTP2"; //добавление параметров второй процедуры sqlcomm.Parameters["@key"].Value = key; sqlcomm.ExecuteNonQuery();//c этой строчки уходит в catch } } MessageBox.Show("Ok"); txn.Commit(); } catch (Exception ex) { txn.Rollback(); MessageBox.Show("Не удалось внести изменения"); } finally { sqlconn.Close(); }
Решение задачи: «Выполнение хранимой процедуры в цикле»
textual
Листинг программы
catch (Exception ex) { txn.Rollback(); MessageBox.Show(ex.ToString()); // or MessageBox.Show(ex.Message); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д