Estoy intentando un proceso que llevo a cabo en varios procedimientos, pero necesito usar transacciones.
Actualmente lo hago de esta forma:
Código:
Pero este codigo no me funciona, ya que si accion2 se ejecuta correctamente, hace el commit, y si accion falla, le hace rollback solo a lo de accion, pero accion2 ya hizo lo que tenia que hacer y no se deshace.private void accion() { SqlTransaction trans; abreCnx(); trans = cnx.BeginTransaction(); try { string Consulta = "..."; sqlcommand cmd = new sqlcommand(consulta, cnx, trans); cmd.executeNomQuery(); accion2(); trans.commit(); } Catch(Exception) { trans.rollback(); throw; } finally { cierraCnx(); } } private void accion2() { SqlTransaction trans; abreCnx(); trans = cnx.BeginTransaction(); try { string Consulta = "..."; sqlcommand cmd = new sqlcommand(consulta, cnx, trans); cmd.executeNomQuery(); trans.commit(); } Catch(Exception) { trans.rollback(); throw; } finally { cierraCnx(); } }
Como puedo hacerlo?
Espero que me haya dado a entender y que me puedan ayudar.
Gracias