Выполнение хранимой процедуры в цикле - 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы