создать транзакцию для вызовов хранимых процедур в C # - PullRequest
2 голосов
/ 22 января 2011

Я использую хранимые процедуры на сервере SQL.У меня есть несколько вызовов хранимых процедур, написанных на C #.Я хочу обернуть их внутри транзакции:

//Begin Transaction here
sp1Call();
sp2Call();
sp3Call();
//Commit here
//Rollback if failed

есть ли способ сделать это?

Обновление: я использую корпоративную библиотеку.пример для sp1Call ():

public static void sp1Call(string itemName)
    {
        DbCommand command = db.GetStoredProcCommand("dbo.sp1_insertItem");
        db.AddInParameter(command, "@item_name", DbType.String, itemName);
        db.ExecuteNonQuery(command);
    }

Ответы [ 2 ]

4 голосов
/ 22 января 2011

Вы хотите проверить SqlTransaction.

2 голосов
/ 22 января 2011

Просто быстрый поиск дает DBTransaction :

   using (DbConnection connection = db.CreateConnection())
   {
     connection.Open();
     DbTransaction transaction = connection.BeginTransaction();
     try
     {
        DbCommand command = db.GetStoredProcCommand("dbo.sp1_insertItem");
        db.AddInParameter(command, "@item_name", DbType.String, itemName);
        db.ExecuteNonQuery(command, transaction);
        transaction.Commit();                   
     }
     catch
     {
       //Roll back the transaction.
       transaction.Rollback();
     }  
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...