none
Eliminar registros de un Datatable RRS feed

  • Pregunta

  • Hola...

    Tengo un Datatable, llamado "datos3" que se llena a partir de un DataAdapter conectado a una base de datos. Ese Datatable lo visualizo en un Checkedlistbox, a través de su propiedad Datasource. Lo que quiero es que al pulsar un botón, se eliminen todos los registros del Checkedlistbox que tengan el "checked" marcados, pero que ese cambio no afecte a la base de datos.

    No se si hay que hacer un bucle que recorra todo el Checkedlistbox, o si hay alguna propiedad que permita buscarlos automáticamente.

    Gracias.


    • Editado IvanBcn1982 miércoles, 15 de marzo de 2017 11:08
    miércoles, 15 de marzo de 2017 11:06

Respuestas

  • Hola, podrías intentar eliminarlos de memoria,con otro objeto datatable

      Private Sub btnEliminarItemSeleccionado_Click(sender As System.Object, e As System.EventArgs) Handles btnEliminarItemSeleccionado.Click
            Dim dt As New DataTable
            dt = TryCast(CheckedListBox1.DataSource, DataTable)
            Dim dtFinal As DataTable = dt.Copy
            For i = CheckedListBox1.Items.Count - 1 To 0 Step -1
                If CheckedListBox1.GetItemCheckState(i) = CheckState.Checked Then
                    dtFinal.Rows.RemoveAt(i)
                End If
            Next
            CheckedListBox1.DataSource = dtFinal
       
            For Each i As Integer In CheckedListBox1.CheckedIndices
                CheckedListBox1.SetItemCheckState(i, CheckState.Unchecked)
            Next
        End Sub

    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.

    • Editado Augusto1982 jueves, 16 de marzo de 2017 1:46
    • Marcado como respuesta IvanBcn1982 jueves, 16 de marzo de 2017 12:30
    jueves, 16 de marzo de 2017 1:45

Todas las respuestas

  • Hola, podrías intentar eliminarlos de memoria,con otro objeto datatable

      Private Sub btnEliminarItemSeleccionado_Click(sender As System.Object, e As System.EventArgs) Handles btnEliminarItemSeleccionado.Click
            Dim dt As New DataTable
            dt = TryCast(CheckedListBox1.DataSource, DataTable)
            Dim dtFinal As DataTable = dt.Copy
            For i = CheckedListBox1.Items.Count - 1 To 0 Step -1
                If CheckedListBox1.GetItemCheckState(i) = CheckState.Checked Then
                    dtFinal.Rows.RemoveAt(i)
                End If
            Next
            CheckedListBox1.DataSource = dtFinal
       
            For Each i As Integer In CheckedListBox1.CheckedIndices
                CheckedListBox1.SetItemCheckState(i, CheckState.Unchecked)
            Next
        End Sub

    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala. Solo dejo en el foro mis post si fueron útiles , de lo contrario y por mantener el orden los borro. Saludos. Lima-Perú.

    • Editado Augusto1982 jueves, 16 de marzo de 2017 1:46
    • Marcado como respuesta IvanBcn1982 jueves, 16 de marzo de 2017 12:30
    jueves, 16 de marzo de 2017 1:45
  • Me ha servido.

    Muchas gracias.

    jueves, 16 de marzo de 2017 12:30