/// <summary> /// Importars the datos. /// </summary> private void ImportarDatos() { //La transacción va a este nivel para poder hacer el rollback en el cath (si se produce error) SqlTransaction transaccion = null; try { //Al utillizar el "using" me aseguro que los recursos se liberen cuando termina el bloque SqlConnection conexion = new SqlConnection() { ConnectionString = ConnectionString }; { //objeto que voy a utilizar para obtener los datos (BD Transaccional) objDAObtenerDatos = new DAObtenerDatos(objConfiguracion.valor); //abre la conexión a la bd conexion.Open(); //le indica al objeto transaccion que va a iniciar una transacción transaccion = conexion.BeginTransaction(); objDAImportarDatos.GrabarMotivoSancion(objDAObtenerDatos.obtenerMotivoSancionBDTransaccional(objConfiguracion), transaccion); objDAImportarDatos.GrabarTipoSancion(objDAObtenerDatos.obtenerTipoSancionBDTransaccional(objConfiguracion), transaccion); objDAImportarDatos.GrabarSancion(objDAObtenerDatos.obtenerSancionBDTransaccional(objConfiguracion), transaccion); } //si la importación de los objetos fue exitosa, entonces confirmo las modificaciones. transaccion.Commit(); conexion.Close(); } catch (Exception ex) { //Valido que la transacción no sea nula, sino daría error al intentar el rollback if (transaccion != null) transaccion.Rollback(); //mando la excepción para arriba throw ex; } }
public List<MotivoSancion> obtenerMotivoSancionBDTransaccional(Configuraciones configuracion) { try { objDAObtenerDatos = new DAObtenerDatos(configuracion.valor); List<MotivoSancion> listaMotivosSancion = new List<MotivoSancion>(); listaMotivosSancion = objDAObtenerDatos.obtenerMotivoSancionBDTransaccional(configuracion); return listaMotivosSancion; } catch (Exception ex) { throw ex; } }