Manejo de transacciones

19/06/2006 - 14:02 por Carlos | Informe spam
Hola de nuevo.

Algunos que venimos de otros lenguajes , nos acostumbrabamos a abrir
explicitamente las transacciones a sql server (begin transaction).
Igualmente posteabamos los cambios explicitamente (Commit).

Como es ese manejo en C# ? Un DataSet lo hace automaticamente ?

Podria todavia uno mismo tener el control para mayor seguridad ?
 

Leer las respuestas

#1 Alberto Poblacion
19/06/2006 - 14:12 | Informe spam
"Carlos" wrote in message
news:
Hola de nuevo.

Algunos que venimos de otros lenguajes , nos acostumbrabamos a abrir
explicitamente las transacciones a sql server (begin transaction).
Igualmente posteabamos los cambios explicitamente (Commit).

Como es ese manejo en C# ? Un DataSet lo hace automaticamente ?



La transacción se inicia con un objeto SqlTransaction, que se obtiene a
partir de la conexion:

SqlTransaction tran = conexion.BeginTransaction();

Después, cada vez que vayas a usar un SqlCommand para ejecutar una
sentencia Sql que deba participar en esa transacción, le tienes que meter
ese objeto "tran" en su propiedad Transaction. Esto incluye a los
DataAdapters, a cuyos SqlCommands internos también les puedes asignar el
.Transaction.

SqlCommand cmd = new SqlCommand(sentencia, conexion);
cmd.Transaction=tran;
cmd.ExecuteNonQuery(); //O calquier otra llamada

Cuando hayas terminado con la transacción, se usa tran.Commit() o
tran.RollBack().

Preguntas similares