Para utilizar transações usando objetos Persist leia este outro tópico.

Já para implementar transações em comandos de banco de dados, é muito fácil. Coloque seu Command.Execute... dentro de um bloco "try catch" da seguinte forma:

Command command = new Command();

try {
//
// Defina o CommandType, que um tipo de consulta a ser feita
//
command.CommandType = CommandType.StoredProcedure;

//
// Se necessário adicione os valores aos parâmetros normalmente
//
command.AddWithValue("param1", param1);
command.AddWithValue("param2", param2);
command.AddWithValue("param3", param3);

//
// Inicie a transação
//
command.BeginTransaction();
command.ExecuteNonQuery("spExecuteProcedure");

//
// Se nenhum erro acontecer no seu Execute,
// então chame o método Commit();
command.Commit();

} catch (Exception) {

//
// Caso contrário, chame o método RollBack() do seu Command
//
command.RollBack();
throw;
}

Basicamente, use os métodos BeginTransaction(); Commit(); e RollBack().

Last edited Mar 9, 2010 at 1:33 PM by ivanpaulovich, version 1

Comments

No comments yet.