none
DataGridview RRS feed

  • Pregunta

  • Que tal a todos, Bendiciones, tengo una duda con respecto a lo siguiente en vb.net: 

    tengo 2 datagridview 

    datagridview1                        datagridview2

    codigo1 nombre              codigo nombre codigo1

    1          A                           1         C          1

    2          B                           2         D          1

                                             3         E           3

                                             4          F         2

    en el datagridview2 tengo en la columna codigo1 que es la que tiene relación con el codigo del datagridview1, entonces como haría para poder mostrar en el datagridview2 solo los datos relacionados con el datagridview1, quedaría asi

    datagridview2

    codigo nombre codigo1

    1            C          1

    2            D          1

    4            F           2

    Desde ya gracias por el apoyo.

    viernes, 29 de mayo de 2020 4:27

Todas las respuestas

  • Hola GRESTU, 

      

    Gracias por levantar tu consulta en los foros de MSDN. Entendimos su pregunta y vamos a darle seguimiento para buscar la mejor repuesta pertinente al caso.  

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.   

     

     Andres Aguilar

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    viernes, 29 de mayo de 2020 13:19
    Moderador
  • Gracias Por Responder 
    viernes, 29 de mayo de 2020 15:05
  • Hola:

    En un Form como el de la imagen


    Copia y pega el siguiente codigo
    Option Explicit On
    Option Strict On
    Public Class Form3
        Private ldt1 As New DataTable()
        Private ldt2 As New DataTable()
        Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
            DataGridView1.AllowUserToAddRows = False
            DataGridView2.AllowUserToAddRows = False
            DataGridView3.AllowUserToAddRows = False
            '
            Dim lDataColumn As DataColumn
            lDataColumn = New DataColumn("codigo1", GetType(Integer))
            ldt1.Columns.Add(lDataColumn)
            lDataColumn = New DataColumn("nombre", GetType(String))
            ldt1.Columns.Add(lDataColumn)
            '
            lDataColumn = New DataColumn("codigo", GetType(Integer))
            ldt2.Columns.Add(lDataColumn)
            lDataColumn = New DataColumn("nombre", GetType(String))
            ldt2.Columns.Add(lDataColumn)
            lDataColumn = New DataColumn("codigo1", GetType(Integer))
            ldt2.Columns.Add(lDataColumn)
            'Cargar los datos
            Dim lData1 As DataRow
            lData1 = ldt1.NewRow
            lData1.Item("codigo1") = 1
            lData1.Item("nombre") = "A"
            ldt1.Rows.Add(lData1)
            lData1 = ldt1.NewRow
            lData1.Item("codigo1") = 2
            lData1.Item("nombre") = "B"
            ldt1.Rows.Add(lData1)
            DataGridView1.DataSource = ldt1
            '
            Dim lData2 As DataRow
            lData2 = ldt2.NewRow
            lData2.Item("codigo") = 1
            lData2.Item("nombre") = "C"
            lData2.Item("codigo1") = 1
            ldt2.Rows.Add(lData2)
            lData2 = ldt2.NewRow
            lData2.Item("codigo") = 2
            lData2.Item("nombre") = "D"
            lData2.Item("codigo1") = 1
            ldt2.Rows.Add(lData2)
            lData2 = ldt2.NewRow
            lData2.Item("codigo") = 3
            lData2.Item("nombre") = "E"
            lData2.Item("codigo1") = 3
            ldt2.Rows.Add(lData2)
            lData2 = ldt2.NewRow
            lData2.Item("codigo") = 4
            lData2.Item("nombre") = "F"
            lData2.Item("codigo1") = 2
            ldt2.Rows.Add(lData2)
            DataGridView2.DataSource = ldt2
        End Sub

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'Clonar la estructura del datatable diferencia
            Dim ldtDif As DataTable = CType(DataGridView2.DataSource, DataTable).Clone
            Dim FilaDif As DataRow
            For Each FilaIni As DataRow In ldt2.Rows
                If Buscar(Convert.ToInt32(FilaIni.Item("codigo1"))) = True Then
                    FilaDif = ldtDif.NewRow
                    FilaDif.Item("codigo") = FilaIni.Item("codigo")
                    FilaDif.Item("nombre") = FilaIni.Item("nombre")
                    FilaDif.Item("codigo1") = FilaIni.Item("codigo1")
                    ldtDif.Rows.Add(FilaDif)
                End If
            Next
            DataGridView3.DataSource = ldtDif
        End Sub
        Private Function Buscar(vId As Integer) As Boolean
            Dim Retorno As Boolean = False
            Try
                Dim Consulta = From Valor In ldt1 Where Valor.Field(Of Integer)("codigo1") = vId
                If Consulta.Count() > 0 Then
                    Retorno = True
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
            Return Retorno
        End Function
    End Class

    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta Andres Aguilar MModerator viernes, 29 de mayo de 2020 15:14
    • Marcado como respuesta GRESTU viernes, 29 de mayo de 2020 15:27
    • Desmarcado como respuesta GRESTU viernes, 29 de mayo de 2020 15:43
    viernes, 29 de mayo de 2020 15:10
  • Muchas Gracias por la respuesta, pero tengo una duda, como se seria si por lugar de clonar el datagridview2, la respuesta se vería en le mismo datadridview2 
    viernes, 29 de mayo de 2020 15:27
  • Hola:
    Solo tendrias que asignar al DataGridView2.DataSource=nuevo datatable pero dejaras de ver los datos antiguos porque has cambiado de DataSource

    Un saludo desde Bilbo
    Carlos
    viernes, 29 de mayo de 2020 15:37
  • Hola GRESTU

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada. Debido a ello, este hilo será cerrado. 

    Si es necesario, por favor abra un nuevo hilo. 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

     

     Andres Aguilar

    ____________________________ 

      

    viernes, 29 de mayo de 2020 15:38
    Moderador