none
¿CÓMO GUARDAR UN COLOR DE REGISTRO DE UN DATAGRID EN MYSQL? RRS feed

  • Pregunta

  • Buen día, me gustaría guardar el color de los registros, ya que si puedo colorear las lineas, pero al momento de cerrar el programa y lo vuelvo abrir lógicamente el color no se queda guardado, me gustaría saber como puedo guardar el registro con todo y el color en mysql.

    Mi código es el siguiente:

    public CONTROL_CLIENTES()
            {
                
                InitializeComponent();
    
            }
    
            
            string connectionString = "datasource=127.0.0.1;port=3306;username=Experienciasistemas;password=experienciasistemas;database=experienciasistemas;";
            
            private void button1_Click(object sender, EventArgs e)
                {
                string query = "INSERT INTO experienciasistemas(`ID`,`NO_FOLIO`,`CLAVE`, `EQUIPO`, `FECHA_RECIBO`, `QUIEN_RECIBE`, `FECHA_COMPROMISO`, `AREA_SERVICIO`, `TECNICO`, `FECHA_ENTREGA`, `REMISION`, `QUIEN_MOSTRO`) VALUES (NULL, '" + NO_FOLIO.Text + "','" + CLAVE.Text + "', '" + EQUIPO.Text + "', '" + FECHA_RECIBO.Text + "', '" + QUIEN_RECIBE.Text + "', '" + FECHA_COMPROMISO.Text + "', '" + AREA_SERVICIO.Text + "', '" + TECNICO.Text + "', '" + FECHA_ENTREGA.Text + "', '" + REMISION.Text + "', '" + QUIEN_MOSTRO.Text + "')";
                MySqlConnection databaseConnection = new MySqlConnection(connectionString);
                MySqlCommand commandDatabase = new MySqlCommand(query, databaseConnection);
                commandDatabase.CommandTimeout = 60;
                databaseConnection.Open();
                MySqlDataReader myReader = commandDatabase.ExecuteReader();
                databaseConnection.Close();
    
                            Registro_vacio.ForeColor = Color.Green;
                            Registro_vacio.Text = "Agregado exitosamente";
                            Registro_vacio.Visible = false;
                            Registro_vacio.Visible = true;
                            this.NO_FOLIO.Text = "";
                            this.CLAVE.Text = "";
                            this.EQUIPO.Text = "";
                            this.FECHA_RECIBO.Text = "";
                            this.QUIEN_RECIBE.Text = "";
                            this.FECHA_COMPROMISO.Text = "";
                            this.AREA_SERVICIO.Text = "";
                            this.TECNICO.Text = "";
                            this.FECHA_ENTREGA.Text = "";
                            this.REMISION.Text = "";
                            this.QUIEN_MOSTRO.Text = "";
                }
            
            private void dataGridView1_VisibleChanged(object sender, EventArgs e)
            {
                using (MySqlConnection cn = new MySqlConnection(connectionString))
                {
                    MySqlDataAdapter da = new MySqlDataAdapter("Select * from experienciasistemas", cn);
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    dataGridView1.DataSource = dt;
                }
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
    
    
                var row = dataGridView1.SelectedRows[0]; //aqui defines la row que puede ser la seleccionada
    
                for (int i = 0; i <= 7; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Yellow;
    
                }
    
                for (int i = 8; i <= 11; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.White;
    
                }
    
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                var row = dataGridView1.SelectedRows[0]; //aqui defines la row que puede ser la seleccionada
    
                for (int i = 0; i <= 7; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Yellow;
    
                }
    
                for (int i = 8; i <= 11; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Green;
    
                }
    
            }
    
    
    
    
    
    
    
        }
    
     }

    martes, 31 de diciembre de 2019 21:28

Respuestas

  • hola

    >>me gustaría guardar el color de los registros, ya que si puedo colorear las lineas

    habia mencionado la respuesta en la pregunta anterior

    No guardad ningun color en la base de datos, debes guardar el estado del registro

    Para el ID de la row del grid debes tener un campo de ESTADO el cual tome por ejemplo el valor:

    1- trabajo listo

    2-entregado

    Entonces cuando recuperes el registro vas a tener que evaluar que estado tiene para volver a repintar las celdas, de la misma forma que ya lo realizas iterando las celda


    Pero en la db persistes en un campo de estado un valor que indique en cual esta, pero no guardas nunguna color

    El color lo aplicas segun el estodo de la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de enero de 2020 15:39

Todas las respuestas

  • Hola Mizael

    Me parece que guardar los colores en la base de datos sería complicarte demasiado, muchísimo. 

    Lo que podrías hacer, es pensar en las circunstancias o condiciones que llevaron a pintar las celdas de tal o cual color, y pintarlas al cargar el DataGridView o en los momentos apropiados, acorde a esas condiciones.

    Por ejemplo, si al insertar una nueva fila, se pintan de la celda 0 a la 7 de amarillo y de la 8 a la 11 de verde, entonces que las filas que se cargan se pinten así, porque al insertarse así fue. 

    Saludos

    Pablo

    miércoles, 1 de enero de 2020 22:21
  • Es que el amarillo se pinta cuando ya esta un trabajo listo, y el verde cuando ya se le entrego al cliente y mientras no pase eso necesitan estar sin color, los colores son super importante en mi proyecto
    miércoles, 1 de enero de 2020 22:47
  • Y bueno, entonces al cargar el dataGridView, recorres el mismo, y a los trabajos listos los pintas de amarillo y a los que ya se los entregó al cliente, de verde, ... cuál sería el problema?
    miércoles, 1 de enero de 2020 23:40
  • hola

    >>me gustaría guardar el color de los registros, ya que si puedo colorear las lineas

    habia mencionado la respuesta en la pregunta anterior

    No guardad ningun color en la base de datos, debes guardar el estado del registro

    Para el ID de la row del grid debes tener un campo de ESTADO el cual tome por ejemplo el valor:

    1- trabajo listo

    2-entregado

    Entonces cuando recuperes el registro vas a tener que evaluar que estado tiene para volver a repintar las celdas, de la misma forma que ya lo realizas iterando las celda


    Pero en la db persistes en un campo de estado un valor que indique en cual esta, pero no guardas nunguna color

    El color lo aplicas segun el estodo de la db

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de enero de 2020 15:39