none
DataGridView: Llenar Fila Completa De DataGridView Desde DataReader RRS feed

  • Pregunta

  • Visual Basic 2010

    Hola a todos

    Es necesario llenar un DataGridView desde un DataReader exclusivamente sin hacer uso de un DataTable o un DataSet

    Las Columnas en el DataGridview se generan dinámicamente utilizando la Propiedad FieldCount y el Método GetName, conjuntamente con el Método Add (de Columns)

    Sin embargo para la Inserción de las Filas se utiliza el siguiente código:

             Do While dr.Read()
                   Grilla.Rows.Add(dr(0), dr(1), dr(2), ..., dr(n))
             Loop

    ¿De qué forma se automatiza el ingreso de una Fila completa en el DataGridView?, pues ésta forma "anula" o "deteriora" el trabajo previamente realizado para el reconocimiento dinámico de la cantidad de Campos (FieldCount) y generación dinámica (con GetName)

    Desde ya Muchísimas Gracias


    Skar.2007

    • Cambiado Enrique M. Montejo jueves, 10 de julio de 2014 11:47 Pregunta relacionada con controles de Windows Forms.
    jueves, 22 de agosto de 2013 6:22

Todas las respuestas

  • hola

    Es necesario llenar un DataGridView desde un DataReader exclusivamente sin hacer uso de un DataTable o un DataSet

    se puede saber porque se descarta el datatable para asignar el datasource ? digo no lo ves mas practico

    o sino usar un List(Of ) con alguna clase que crees, desde el reader cargas la lista y asignas esta al datasource

    pues ésta forma "anula" o "deteriora" el trabajo previamente realizado para el reconocimiento dinámico de la cantidad de Campos (FieldCount) y generación dinámica (con GetName)

    no entiendo que tiene que ver el GetName en esto que planteas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 22 de agosto de 2013 6:51
  • Se utiliza el siguiente código:

    ...

            Do While dr.Read()
                Dim rw As New DataGridViewRow
                For i = 0 To dr.FieldCount - 1
                    rw.CreateCells(dgvDatos, dr(i))
                Next
                dgvDatos.Rows.Add(rw)
            Loop

    Pero al cargar el DataGridView (donde se generan las columnas respectivas utilizando los Miembros descritos en el post anterior), sólo se muestran los datos del último Campo del DataReader y en la primera columna, quedando las demás en blanco.

    ¿Cuál es el error y cómo corregirlo?

    Reiterar que es necesario hacerlo directamente desde un DataReader (a pesar de existir otras formas quizás más convencionales)

    Desde ya Muchísimas Gracias


    Skar.2007

    jueves, 22 de agosto de 2013 7:56