none
Borrar filas de un Datagridview que se llena con un origen de datos de un DataSet

    Pregunta

  • Buen día integrantes,

    Tengo un problema bastante sencillo.

    Yo lleno un DataGridView con una TableAdapter(de un procedimiento almacenado) de un DataSet.

    El problema es cuando lo quiero "vaciar". Me devuelve un error que dice: "No se puede borrar esta lista".

    Si alguien podría apoyarme.

    Saludos.


    William Lickez

    miércoles, 29 de marzo de 2017 22:55

Respuestas

  • William Lickez,

    Si los datos que muestra la grilla los tienes vinculados a un origen mediante la propiedad DataSource y quieres dejar de mostrarlos entonces lo único que debes de hacer es "desconectar el vinculo" y ello lo puedes lograr estableciendo Nothing a la propiedad DataSource, de hecho Brayan ya te lo había sugerido:

    _dgvListado.DataSource = Nothing


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta William Lickez viernes, 31 de marzo de 2017 15:07
    jueves, 30 de marzo de 2017 0:36
  • If _dgvListado.Rows.Count > 0 Then
                        cantidadFilas = _dgvListado.Rows.Count - 1
                        For index = cantidadFilas To 0 Step -1
                            _dgvListado.Rows.Remove(_dgvListado.Rows(index))
                        Next
                    End If

    Al final tuve que hacer esto. El único incoveniente es que cuando son muchas filas tarda unos segundos en realizar todo el recorrido.

    Saludos


    William Lickez

    • Marcado como respuesta William Lickez jueves, 30 de marzo de 2017 0:18
    jueves, 30 de marzo de 2017 0:18
  • Willams, gracias! en vb era Nothing, en c# es null, toda la razón!!

    Saludos compatriota!


    Si serví a tu consulta, no olvides votar como útil.


    jueves, 30 de marzo de 2017 0:38

Todas las respuestas

  • Hola,

    porfa, podrías poner algo de código para ayudarte?

    gracias


    Si serví a tu consulta, no olvides votar como útil.

    miércoles, 29 de marzo de 2017 23:02
  • Lo que puedes hacer es guardar los registros a borrar en un listado, ya que no puedes borrar directamente.

    Inmediatamente poner el datagridview.datasource = null y la sgte linea volver a llenarlo.

    Dim listaborrar As New List(Of DataRow)
    
    
    For Each drow As DataRow In tablaadapter.Rows
    
          If drow("TablaAdapter") = "" Then
                listaborrar.Add(drow)
           End If
                  
     Next
    
    For Each dr As DataRow In listaborrar
    
         tablaadapter.Rows.Remove(dr)
    
    Next

    Saludos.


    Si serví a tu consulta, no olvides votar como útil.

    miércoles, 29 de marzo de 2017 23:09
  • Fiajte que la mayoria de cosas es visual.

    Lo que he intentado es unicamente dgv.rows.clear() (esto es para borrar las filas, esto si funciona si fuera el caso en que las filas fueron agregadas manualmente una a una)

    Pero como la filas que estan en el DataGridView son cargadas de un origen me da ese error.

    Lo que intengo hacer es vaciar solamente el datagridview, más no lo datos de la Base de datos.

    Como quien dice que quiero vaciar un cubo de agua para tenerlo disponible para llenar con otra cantidad de agua jejjee


    William Lickez

    miércoles, 29 de marzo de 2017 23:29
  • Entiendo, de acuerdo..

    prueba con este código 

    DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
    Saludos.

    Si serví a tu consulta, no olvides votar como útil.

    miércoles, 29 de marzo de 2017 23:34
  • If _dgvListado.Rows.Count > 0 Then
                        cantidadFilas = _dgvListado.Rows.Count - 1
                        For index = cantidadFilas To 0 Step -1
                            _dgvListado.Rows.Remove(_dgvListado.Rows(index))
                        Next
                    End If

    Al final tuve que hacer esto. El único incoveniente es que cuando son muchas filas tarda unos segundos en realizar todo el recorrido.

    Saludos


    William Lickez

    • Marcado como respuesta William Lickez jueves, 30 de marzo de 2017 0:18
    jueves, 30 de marzo de 2017 0:18
  • si intenta hacerlo con foreach? en vez de for? 

    Saludos.


    Si serví a tu consulta, no olvides votar como útil.

    jueves, 30 de marzo de 2017 0:25
  • William Lickez,

    Si los datos que muestra la grilla los tienes vinculados a un origen mediante la propiedad DataSource y quieres dejar de mostrarlos entonces lo único que debes de hacer es "desconectar el vinculo" y ello lo puedes lograr estableciendo Nothing a la propiedad DataSource, de hecho Brayan ya te lo había sugerido:

    _dgvListado.DataSource = Nothing


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta William Lickez viernes, 31 de marzo de 2017 15:07
    jueves, 30 de marzo de 2017 0:36
  • Willams, gracias! en vb era Nothing, en c# es null, toda la razón!!

    Saludos compatriota!


    Si serví a tu consulta, no olvides votar como útil.


    jueves, 30 de marzo de 2017 0:38
  • Willams, gracias! en vb era Nothing, en c# es null, toda la razón!!

    Descuida, suele suceder y sobre todo a mi muy a menudo. Espero sigas apoyando en el foro, siempre es de admirar las personas que otorgan tiempo en apoyar a los demás.

    jueves, 30 de marzo de 2017 0:53
  • Willams, gracias! en vb era Nothing, en c# es null, toda la razón!!

    Descuida, suele suceder y sobre todo a mi muy a menudo. Espero sigas apoyando en el foro, siempre es de admirar las personas que otorgan tiempo en apoyar a los demás.

    muchas gracias por esos ánimos, estoy con toda la disposición. Saludos!

    Si serví a tu consulta, no olvides votar como útil.

    jueves, 30 de marzo de 2017 0:58