none
Recorrer Filas de un DatagridView y devuelve Filas vacías RRS feed

  • Pregunta

  • Buenas tardes a todos, tengo el codigo para devolver filas seleccionadas de un datagridview1 a otro (datagridview2) pertenecientes a otro formulario, el me está devolviendo bien los datos que necesito, pero me está devolviendo las filas que necesito y me agrega dos filas vacías al datagridview2. Éste es mi código:

            if (dgvProducto.Rows.Count > 0)
                {
                    foreach (DataGridViewRow row in dgvProducto.Rows)
                    {
                        DataGridViewRow fila = new DataGridViewRow();
                        fila.CreateCells(padre.DGV_Factura);
                        fila.Cells[2].Value = row.Cells[2].Value;
                        fila.Cells[3].Value = row.Cells[8].Value;
                        padre.DGV_Factura.Rows.Add(fila);
                        
                        this.Close();
                    }
                }

    Cómo resuelvo este problemón? Ayuda...

    Gracias.

    viernes, 27 de diciembre de 2019 23:30

Respuestas

  • Hola Ramiro

    Para entender por qué te agrega 2 filas vacías al DataGridView tendría que ver más del código, o todo.

    Pero te puedo decir 2 cosas:

     if (dgvProducto.Rows.Count > 0)

    es innecesario, porque si Count es 0 no hay filas y el foreach no hará nada, y

     this.Close();

    dentro del foreach no tengo idea si fue adrede o se te traspapeló, pero estoy seguro que no debe ir allí, quizás después del foreach

    Fijate si se resuelve con esto, si no, podes pasarme más código para ver, o todo 

    Saludos

    Pablo

    sábado, 28 de diciembre de 2019 1:33
  • hola

    >>tengo el codigo para devolver filas seleccionadas de un datagridview1

    Si iteras en el foreach por la propiedad Rows, esas no son las filas selecionadas, sino que son todas las filas

    Para recorrer las seleccionadas debes usar

    DataGridView.SelectedRows

    -----

    Ahora bien puede que agregue doas rows porque tienes la propiedad

    DataGridView.AllowUserToAddRows

    en true

    Intenta cambiando esa propiedad a "false" en ambas grids

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 30 de diciembre de 2019 13:57
  • Buenas tardes a todos, tengo el codigo para devolver filas seleccionadas de un datagridview1 a otro (datagridview2) pertenecientes a otro formulario, el me está devolviendo bien los datos que necesito, pero me está devolviendo las filas que necesito y me agrega dos filas vacías al datagridview2. Éste es mi código:

            if (dgvProducto.Rows.Count > 0)
                {
                    foreach (DataGridViewRow row in dgvProducto.Rows)
                    {
                        DataGridViewRow fila = new DataGridViewRow();
                        fila.CreateCells(padre.DGV_Factura);
                        fila.Cells[2].Value = row.Cells[2].Value;
                        fila.Cells[3].Value = row.Cells[8].Value;
                        padre.DGV_Factura.Rows.Add(fila);
                        
                        this.Close();
                    }
                }

    Cómo resuelvo este problemón? Ayuda...

    Gracias.

    RESPUESTA EN LENGUAJE C#
    viernes, 27 de diciembre de 2019 23:31

Todas las respuestas

  • Buenas tardes a todos, tengo el codigo para devolver filas seleccionadas de un datagridview1 a otro (datagridview2) pertenecientes a otro formulario, el me está devolviendo bien los datos que necesito, pero me está devolviendo las filas que necesito y me agrega dos filas vacías al datagridview2. Éste es mi código:

            if (dgvProducto.Rows.Count > 0)
                {
                    foreach (DataGridViewRow row in dgvProducto.Rows)
                    {
                        DataGridViewRow fila = new DataGridViewRow();
                        fila.CreateCells(padre.DGV_Factura);
                        fila.Cells[2].Value = row.Cells[2].Value;
                        fila.Cells[3].Value = row.Cells[8].Value;
                        padre.DGV_Factura.Rows.Add(fila);
                        
                        this.Close();
                    }
                }

    Cómo resuelvo este problemón? Ayuda...

    Gracias.

    RESPUESTA EN LENGUAJE C#
    viernes, 27 de diciembre de 2019 23:31
  • Hola Ramiro

    Para entender por qué te agrega 2 filas vacías al DataGridView tendría que ver más del código, o todo.

    Pero te puedo decir 2 cosas:

     if (dgvProducto.Rows.Count > 0)

    es innecesario, porque si Count es 0 no hay filas y el foreach no hará nada, y

     this.Close();

    dentro del foreach no tengo idea si fue adrede o se te traspapeló, pero estoy seguro que no debe ir allí, quizás después del foreach

    Fijate si se resuelve con esto, si no, podes pasarme más código para ver, o todo 

    Saludos

    Pablo

    sábado, 28 de diciembre de 2019 1:33
  • hola

    >>tengo el codigo para devolver filas seleccionadas de un datagridview1

    Si iteras en el foreach por la propiedad Rows, esas no son las filas selecionadas, sino que son todas las filas

    Para recorrer las seleccionadas debes usar

    DataGridView.SelectedRows

    -----

    Ahora bien puede que agregue doas rows porque tienes la propiedad

    DataGridView.AllowUserToAddRows

    en true

    Intenta cambiando esa propiedad a "false" en ambas grids

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 30 de diciembre de 2019 13:57
  • Excelente tu respuesta, eso era!!! FELIZ AÑO NUEVO HERMANO!
    martes, 31 de diciembre de 2019 22:55
  • Buena respuesta, lo haré asi y sé que es lo correcto. Gracias y feliz año nuevo!!!
    martes, 31 de diciembre de 2019 22:56