none
Como comparar el texto de una columna de un datagridview con otro datagridview

    Pregunta

  • Hola. saludos para todos, tengo dos datagridView que en algunas fila tienen celdas con los mismos datos en la misma columna respectivamente  y me gustaría poder codificar una acción en caso de que un datagrid tenga los mismos datos que otro, EJ: si en el Datagrid 1 en la columna "Prueba" existen algunas celdas iguales a alguna de la celda de la columna ("Prueba2") en Datagrid 2 que esa fila del datagrid 2 en la que se encuentra esa celda duplicada que se elimine, hasta ahora he intentado con esto, pero no me funciono como quería.

                     'Hago un recorrido en ambos datagrid

    'Especifico las columnas a comparar y en caso que sean iguales  que elimine la fila duplicada

    For Each fila1 In DataGridView1.Rows 
                For Each fila2 In DataGridView2.Rows
                    If fila1.cells("prueba1").value = fila2.cells("Prueba2").value Then
                        fila2.cells("prueba2").value = Nothing

                    End If
                Next
            Next

    Gracias de ante mano.


    Renzo Rivera

    domingo, 15 de enero de 2017 3:01

Respuestas

  • Renzo19,

    Vamos por algo simple, hagamos un join entre ambos conjuntos e iteremos por las filas que hagan match:

    For Each Fila As DataGridViewRow In
    	(From dgv2 In DataGridView2.Rows.Cast(Of DataGridViewRow)()
    	 Join dgv1 In DataGridView1.Rows.Cast(Of DataGridViewRow)() On
    		CStr(dgv2.Cells("Prueba2").Value) Equals CStr(dgv1.Cells("Prueba").Value)
    	 Select dgv2).Distinct()
    
    	'En caso se desee quitar la fila de la colección
    	'DataGridView2.Rows.Remove(Fila)
    
    	Fila.Cells("Prueba2").Value = Nothing
    Next

    No olvides indicar el espacio de nombres: Imports System.Linq


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    • Marcado como respuesta Renzo19 domingo, 15 de enero de 2017 5:20
    domingo, 15 de enero de 2017 4:00