none
Cual es la manera mas optima de limpiar un DataGridView? RRS feed

  • Pregunta

  • Tengo esta duda para los expertos del foro, cual sera la manera mas optima de limpiar un DataGridView, para luego llenarlo con un DataReader o un DataTable o un DataSet.

    Agradecido de antemano

    jueves, 29 de septiembre de 2011 4:23

Respuestas

  • "RealMaster" preguntó:

    > cual sera la manera mas optima de limpiar un DataGridView, ...

    Dependerá del valor que tenga la propiedad AutoGenerateColumns del control DataGridView, y si éste control está o no enlazado a un origen de datos.

    Si está enlazado a un origen de datos, y la propiedad AutoGenerateColumns tiene su valor por defecto (True), la manera más sencilla de limpiar el control DataGridView es estableciendo el valor Nothing a su propiedad DataSource:

        DataGridView1.DataSource = Nothing

    Cuando le asignes nuevamente un objeto válido a la propiedad DataSource, automáticamente se crearán las columnas y se rellenará de datos.

    También te puede servir lo anterior para eliminar las filas si el valor de la propiedad AutoGenerateColumns es False y has asignado manualmente el valor de la propiedad DataPropertyName de cada columna del control DataGridView.

    Pero si el control DataGridView no está enlazado a ningún origen de datos (no se ha especificado su propiedad DataSource), entonces podrías limpiar su filas llamando al método Clear de la propiedad Rows:

        DataGridView1.Rows.Clear()

    Y si quieres también limpiar sus columnas, al método Clear pero de la propiedad Columns:

        DataGridView1.Columns.Clear()

    > ... para luego llenarlo con un DataReader o un DataTable o un DataSet.

    Acepto que lo rellenes con un objeto DataTable declarado de manera individual o existente en un objeto DataSet. Pero que lo rellenes por el simple hecho de asignarle un objeto DataReader a la propiedad DataSource del control DataGridView, me parece a mí que no va a poder ser. :-)


    Enrique Martínez
      [MS MVP - VB]

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.


    jueves, 29 de septiembre de 2011 7:42
    Moderador

Todas las respuestas

  • "RealMaster" preguntó:

    > cual sera la manera mas optima de limpiar un DataGridView, ...

    Dependerá del valor que tenga la propiedad AutoGenerateColumns del control DataGridView, y si éste control está o no enlazado a un origen de datos.

    Si está enlazado a un origen de datos, y la propiedad AutoGenerateColumns tiene su valor por defecto (True), la manera más sencilla de limpiar el control DataGridView es estableciendo el valor Nothing a su propiedad DataSource:

        DataGridView1.DataSource = Nothing

    Cuando le asignes nuevamente un objeto válido a la propiedad DataSource, automáticamente se crearán las columnas y se rellenará de datos.

    También te puede servir lo anterior para eliminar las filas si el valor de la propiedad AutoGenerateColumns es False y has asignado manualmente el valor de la propiedad DataPropertyName de cada columna del control DataGridView.

    Pero si el control DataGridView no está enlazado a ningún origen de datos (no se ha especificado su propiedad DataSource), entonces podrías limpiar su filas llamando al método Clear de la propiedad Rows:

        DataGridView1.Rows.Clear()

    Y si quieres también limpiar sus columnas, al método Clear pero de la propiedad Columns:

        DataGridView1.Columns.Clear()

    > ... para luego llenarlo con un DataReader o un DataTable o un DataSet.

    Acepto que lo rellenes con un objeto DataTable declarado de manera individual o existente en un objeto DataSet. Pero que lo rellenes por el simple hecho de asignarle un objeto DataReader a la propiedad DataSource del control DataGridView, me parece a mí que no va a poder ser. :-)


    Enrique Martínez
      [MS MVP - VB]

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.


    jueves, 29 de septiembre de 2011 7:42
    Moderador
  • Muy buena respuesta, me equivoque con el objeto DataReader a la propiedad DataSource del control DataGridView, no se lo puede aplicar, era un objeto DataRow.
    jueves, 29 de septiembre de 2011 16:49
  • gracias, buen dato...
    domingo, 27 de agosto de 2017 18:05
  • Muchas gracias por tu aporte, amigo. Me sirvió mucho lo de: DataGridView1.Rows.Clear()
    jueves, 26 de julio de 2018 2:16
  • si esta enlazado a datos 

    primero

    dgv.datasource=nothing

    o des-enlace

    y luego

    dgv.rows.clear

    miércoles, 10 de julio de 2019 17:02