public bool ActualizarLaptopMemoria(int idLC, BindingList <Memoria> memorias, string usuario) { string sql = "SET autocommit=0;"; bool commit = objManager.EjecutarNonQuery(sql); objManager.conexion.Close(); objManager.conexion.Dispose(); objManager.cmd.Dispose(); bool error = false; if (commit) { sql = "Select * From memoria_LC where idLC=" + idLC + " ;"; MySqlDataReader reader; reader = objManager.MostrarInformacion(sql); BindingList <Memoria> memoriasAux = new BindingList <Memoria>(); while (reader.Read()) { Memoria memoria = new Memoria(); memoria.IdMemoria = reader.GetInt32("idMemoria"); memoria.Cantidad = reader.GetInt32("cantidad"); memoriasAux.Add(memoria); } if ((reader.HasRows)) { parametrosEntrada = new MySqlParameter[1]; parametrosEntrada[0] = new MySqlParameter("@_idLC", MySqlDbType.Int32); parametrosEntrada[0].Value = idLC; error = objManager.EjecutarProcedure(parametrosEntrada, "delete_memoria_LC"); if (!error) { sql = "ROLLBACk;"; commit = objManager.EjecutarNonQuery(sql); objManager.conexion.Close(); objManager.conexion.Dispose(); objManager.cmd.Dispose(); return(error); } foreach (Memoria m in memoriasAux) { int _idMemoria = m.IdMemoria; int _cantidad = m.Cantidad; parametrosEntrada = new MySqlParameter[2]; parametrosEntrada[0] = new MySqlParameter("@_idMemoria", MySqlDbType.Int32); parametrosEntrada[1] = new MySqlParameter("@_cantidad", MySqlDbType.Int32); parametrosEntrada[0].Value = _idMemoria; parametrosEntrada[1].Value = _cantidad; error = objManager.EjecutarProcedure(parametrosEntrada, "update_memoria_cantidad"); if (!error) { sql = "ROLLBACk;"; commit = objManager.EjecutarNonQuery(sql); objManager.conexion.Close(); objManager.conexion.Dispose(); objManager.cmd.Dispose(); return(error); } } } objManager.conexion.Close(); objManager.conexion.Dispose(); objManager.cmd.Dispose(); foreach (Memoria m in memorias) { parametrosEntrada = new MySqlParameter[4]; parametrosEntrada[0] = new MySqlParameter("@_idMemoria", MySqlDbType.Int32); parametrosEntrada[1] = new MySqlParameter("@_idLC", MySqlDbType.Int32); parametrosEntrada[2] = new MySqlParameter("@_cantidad", MySqlDbType.Int32); parametrosEntrada[3] = new MySqlParameter("@_usuario_ins", MySqlDbType.VarChar, 100); parametrosEntrada[0].Value = m.IdMemoria; parametrosEntrada[1].Value = idLC; parametrosEntrada[2].Value = m.Cantidad; parametrosEntrada[3].Value = usuario; error = objManager.EjecutarProcedure(parametrosEntrada, "insert_memoria_LC"); if (!error) { sql = "ROLLBACk;"; commit = objManager.EjecutarNonQuery(sql); objManager.conexion.Close(); objManager.conexion.Dispose(); objManager.cmd.Dispose(); return(error); } } } sql = "COMMIT; SET autocommit=1;"; commit = objManager.EjecutarNonQuery(sql); objManager.conexion.Close(); objManager.conexion.Dispose(); objManager.cmd.Dispose(); return(true); }