none
Eliminar los registros iguales de un DatagridView2, al borrar un registro unico de otro DataGridView1 RRS feed

  • Pregunta

  • Como eliminar un registro de un datagridview (datagridview1) y que en otro datagridview (datagridview2) se borren todos los registros que contengan el mismo IdClave del registro que se borra en el datagridview1, en visual basic.net

    Gracias por su valiosa ayuda.

    martes, 19 de septiembre de 2017 3:01

Respuestas

  • Hola:
    En un Form como el de la imagen, copia y pega el siguiente código

    Public Class FrmIguales
        Private moDataTable1 As New DataTable
        Private moDataTable2 As New DataTable
        Private Sub FrmIguales_Load(sender As Object, e As EventArgs) Handles Me.Load
            'Añadimos las columnas.
            moDataTable1.Columns.Add(New DataColumn("Prueba", GetType(String)))
            Me.DataGridView1.DataSource = moDataTable1
            lP_Añadir1()
            '
            moDataTable2.Columns.Add(New DataColumn("Prueba", GetType(String)))
            Me.DataGridView2.DataSource = moDataTable2
            lP_Añadir2()
        End Sub
        Private Sub lP_Añadir1()
            Dim lDataRow As DataRow = moDataTable1.NewRow
            ' Añadimos los datos
            lDataRow.Item("Prueba") = "PRIMERO"
            ' Agregamos el registros a la colección Rows
            moDataTable1.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable1.NewRow
            lDataRow.Item("Prueba") = "SEGUNDO"
            moDataTable1.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable1.NewRow
            lDataRow.Item("Prueba") = "TERCERO"
            moDataTable1.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable1.NewRow
            lDataRow.Item("Prueba") = "CUARTO"
            moDataTable1.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable1.NewRow
            lDataRow.Item("Prueba") = "QUINTO"
            moDataTable1.Rows.Add(lDataRow)
        End Sub
        Private Sub lP_Añadir2()
            Dim lDataRow As DataRow = moDataTable2.NewRow
            ' Añadimos los datos
            lDataRow.Item("Prueba") = "PRIMERO"
            moDataTable2.Rows.Add(lDataRow)
            lDataRow = moDataTable2.NewRow
            lDataRow.Item("Prueba") = "PRIMERO"
            moDataTable2.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable2.NewRow
            lDataRow.Item("Prueba") = "TERCERO"
            moDataTable2.Rows.Add(lDataRow)
            lDataRow = moDataTable2.NewRow
            lDataRow.Item("Prueba") = "TERCERO"
            moDataTable2.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable2.NewRow
            lDataRow.Item("Prueba") = "SEXTO"
            moDataTable2.Rows.Add(lDataRow)
            '
            lDataRow = moDataTable2.NewRow
            lDataRow.Item("Prueba") = "SEPTIMO"
            moDataTable2.Rows.Add(lDataRow)
        End Sub
        Private Sub btnBorrar_Click(sender As Object, e As EventArgs) Handles btnBorrar.Click
            Dim Lista As New List(Of DataGridViewRow)
            Dim loFila As DataGridViewRow = Me.DataGridView1.CurrentRow()
            Dim Valor As String = CStr(loFila.Cells("Prueba").Value)
            For Each Fila As DataGridViewRow In (From dgv2 In DataGridView2.Rows.Cast(Of DataGridViewRow)() Where
             CStr(dgv2.Cells("Prueba").Value) = Valor Select dgv2).Distinct()
                Lista.Add(Fila)
            Next
            'Borrar las filas del 2 que esten en el 1
            For Each drFila As DataGridViewRow In Lista
                DataGridView2.Rows.Remove(drFila)
            Next
        End Sub
    End Class
    Un saludo desde Bilbo
    Carlos

    martes, 19 de septiembre de 2017 4:49