try transaction transacciones start example catch begintransaction asp.net mysql transactions

asp.net - transacciones - mysql try catch transaction



las transacciones de mysql en asp.net? (4)

Aquí hay otro iniciador para TransactionScope: Implementación de una transacción implícita usando el alcance de la transacción

¿Pueden decirme la forma de manejar transacciones en asp.net?

es decir, tengo algunas consultas (Presentes en diferentes funciones y llamadas en diversas situaciones) que deben ser ejecutadas como un todo. Entonces, ¿cómo debería hacerlo?

No estoy seguro de la sintaxis y el método / práctica para escribir las declaraciones en .net (commit, rollback, etc.).

Amablemente hágamelo saber. Además, por favor, sírvame algunos buenos artículos si es posible. ¡¡¡Gracias!!!


No sé mucho sobre TransactionScope, pero uso el IDbTransaction normal de esta manera:

IDbConnection conn = null; IDbCommand cmd = null; IDbTransaction tran = null; try { conn = DatabaseUtil.GetConnection(); //Get the connection somehow cmd = conn.CreateCommand(); tran = conn.BeginTransaction(); cmd.Transaction = tran; //Do your DB Work tran.Commit(); } catch (SystemException ex) { tran.Rollback(); } finally { if (conn != null) conn.Close(); }

Con las clases de IDb también es DB independiente en cierto grado.


Recomiendo usar TransactionScope , porque puede usarlo sin importar qué DB esté usando. Incluso puede hacer transacciones distribuidas (operaciones contra múltiples bases de datos dentro de la misma transacción) con él.

Puede consultar un enlace para obtener un ejemplo de código, pero en general, lo hace:

try { using (TransactionScope scope = new TransactionScope()) { using (MySqlConnection connection1 = new MySqlConnection (connectionString)) { // Opening the connection automatically enlists it in the // TransactionScope as a lightweight transaction. connection1.Open(); // create the DB commands and perform the DB operations . . . // The Complete method commits the transaction. If an exception has been thrown, // Complete is not called and the transaction is rolled back. scope.Complete(); } } } catch (Exception e) { // something went wrong, handle the exception accordingly. Note // that since we did not call TransactionScope.Complete, nothing // gets committed to the DB. }