public string actualizarprivilegios(DatosUsuario objusuario, List <DatosUsuario> Detalle) { string msg = "OK"; SqlConnection sqlcon = new SqlConnection(); sqlcon.ConnectionString = Conexion.conexion; sqlcon.Open(); SqlTransaction sqltra = sqlcon.BeginTransaction(); try { // primero eliminar privilegio y codigo de procesos para luego agregarlos nuevamente SqlCommand sqlcmd = ProcAlmacenado.CrearProc(sqlcon, "SP_USUARIO", sqltra); SqlParameter parModo = ProcAlmacenado.asignarParametros("@modo", SqlDbType.Int, 12); sqlcmd.Parameters.Add(parModo); SqlParameter parCodproceso = ProcAlmacenado.asignarParametros("@codproceso", SqlDbType.Int, objusuario.codmodulo); sqlcmd.Parameters.Add(parCodproceso); SqlParameter parRoles = ProcAlmacenado.asignarParametros("@idroles", SqlDbType.Int, objusuario.idroles); sqlcmd.Parameters.Add(parRoles); msg = sqlcmd.ExecuteNonQuery() == 1 ? "OK" : "NO se ingreso el registro"; foreach (DatosUsuario det in Detalle) { SqlCommand sqlcmd2 = ProcAlmacenado.CrearProc(sqlcon, "SP_USUARIO", sqltra); SqlParameter parModo2 = ProcAlmacenado.asignarParametros("@modo", SqlDbType.Int, 13); sqlcmd2.Parameters.Add(parModo2); SqlParameter parCodigo = ProcAlmacenado.asignarParametros("@codSP", SqlDbType.Int, det.codigo); sqlcmd2.Parameters.Add(parCodigo); SqlParameter parIdroles = ProcAlmacenado.asignarParametros("@idroles", SqlDbType.Int, objusuario.idroles); sqlcmd2.Parameters.Add(parIdroles); SqlParameter parEstado = ProcAlmacenado.asignarParametros("@estado", SqlDbType.Bit, det.estado); sqlcmd2.Parameters.Add(parEstado); SqlParameter parCodsubproceso = ProcAlmacenado.asignarParametros("@codsubproceso", SqlDbType.Int, det.codsubproceso); sqlcmd2.Parameters.Add(parCodsubproceso); SqlParameter parCodproceso2 = ProcAlmacenado.asignarParametros("@codproceso", SqlDbType.Int, det.codproceso); sqlcmd2.Parameters.Add(parCodproceso2); msg = sqlcmd2.ExecuteNonQuery() == 1 ? "OK" : "NO se ingreso el registro"; } } catch (Exception ex) { msg = ex.Message; } if (msg.Equals("OK")) { sqltra.Commit(); } else { sqltra.Rollback(); } sqlcon.Close(); return(msg); }