none
Pasar todos los datos (filas) de un Datagrid a otro Datagrid en otro Form vb.net RRS feed

  • Pregunta

  • buenas de nuevo, aqui molestando una vez mas...

    como dice el titulo, estoy tratando de pasar todos los datos de de un datagrid en mi form1 a otro datagrid en mi form2, realmente he leído bastante en lo foros de como hacerlo, pero ninguno explica exactamente lo que yo necesito

    a ver si alguien me echa una mano..

    el datagrid del form1 esta enlazado a una base de datos (lo lleno mediante un procedimiento almacenado) y el datagrid del form2 no esta enlazado, esto lo utilizo así ya que previamente busco al información necesaria (en el form1) antes de mandar la información encontrada al datagird en el form2


    • Editado Jefry Zelaya miércoles, 1 de marzo de 2017 22:41 falta de contenido
    • Cambiado Enrique M. Montejo domingo, 5 de marzo de 2017 7:35 Pregunta relacionada con controles de Windows Forms.
    miércoles, 1 de marzo de 2017 22:38

Todas las respuestas

  • Hola,podrías mencionar con que objeto llenas el primer datagridview , es con un datatable? ,si asi fuera

    podrías pasarlo con el evento  click de un boton del form1 al form2 creando la instancia del form2 ,con un constructor sobrecargado el cual tuviera como parámetro un obeto como un datatatable

    Public Class Form1
        Private Sub btnPasaraOtroForm_Click(sender As System.Object, e As System.EventArgs) Handles btnPasaraOtroForm.Click
            Dim dt As New DataTable
            dt = TryCast(DataGridView1.DataSource, DataTable)
            Dim fr As New Form2(dt)
            fr.Show()
        End Sub
    End Class
    Public Class Form2
        Private dtGrilla As DataTable
    
        Public Sub New(ByVal dt As DataTable)
            InitializeComponent()
            dtGrilla = dt
        End Sub
    
        Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            DataGridView1.DataSource = dtGrilla
        End Sub
    End Class

    Quedo a la espera de tus comentarios


    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ú.


    jueves, 2 de marzo de 2017 3:15
  • Hola,podrías mencionar con que objeto llenas el primer datagridview , es con un datatable? ,si asi fuera

    podrías pasarlo con el evento  click de un boton del form1 al form2 creando la instancia del form2 ,con un constructor sobrecargado el cual tuviera como parámetro un obeto como un datatatable

    Public Class Form1
        Private Sub btnPasaraOtroForm_Click(sender As System.Object, e As System.EventArgs) Handles btnPasaraOtroForm.Click
            Dim dt As New DataTable
            dt = TryCast(DataGridView1.DataSource, DataTable)
            Dim fr As New Form2(dt)
            fr.Show()
        End Sub
    End Class
    Public Class Form2
        Private dtGrilla As DataTable
    
        Public Sub New(ByVal dt As DataTable)
            InitializeComponent()
            dtGrilla = dt
        End Sub
    
        Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            DataGridView1.DataSource = dtGrilla
        End Sub
    End Class

    Quedo a la espera de tus comentarios


    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ú.

    Gracias por la respuesta, mira para llenar el 1er Grid utilizo un procedimiento almacenado, aquí te muestro el código: 

    MetroGrid2.DataSource = db.ver_Pedi2_Detalle("")
            MetroGrid2.Columns("Id_Pedido").HeaderText = "Numero de Pedido"
            MetroGrid2.Columns(0).Width = 150
            MetroGrid2.Columns(1).Width = 200
            MetroGrid2.Columns("Fech_pedido").Visible = False
            MetroGrid2.Columns("Hora_Pedido").Visible = False
            MetroGrid2.Columns("Id_Cliente").Visible = False
            MetroGrid2.Columns("Usuario").Visible = False

    El procedimiento se llama ver_Pedi2_Detalle, con el cual llamo a los datos de la tabla en especifico

    especificación del cogido:

    "db"

    Public db As New LinqDataContext

    tengo un objeto lq por medio del cual mando a llamar los procedimientos almacenados, ahora si creo a verme explicado mejor :)

    jueves, 2 de marzo de 2017 14:45
  • Buenas, yo aquí de nuevo, he logrado avanzar un poco con lo que pretendo, mi idea es pasar toda la información de un grid a otro grid en otro formulario aquí muestro el codigo:

            ' Referenciamos la fila actual
    
            Dim row As DataGridViewRow = MetroGrid2.CurrentRow
    
            ' Referenciamos el Form2
            ' Form2 form2 = null;
    
            Dim form2 As New Form2()
            For Each frm As Form In Application.OpenForms
                If (frm.Name = "Form2") Then
                    form2 = DirectCast(frm, Form2)
                    ' TODO: might not be correct. Was : Exit For
                    Exit For
                End If
            Next
    
            If (form2 Is Nothing) Then
                Return
    
            End If
    
            ' Referenciamos el control DataGridView del segundo formulario
            '
            Dim dgv2 As DataGridView = form2.MetroGrid1 
            ' Almacenamos los valores de la fila en un array
    
            If True Then
                Dim values As Object() = New Object(row.Cells.Count - 1) {}
    
                Dim index As Integer = 0
    
                For Each cell As DataGridViewCell In row.Cells
                    values(index) = cell.Value
                    index += 1
                Next
    
                dgv2.Rows.Add(values)
                form2.Show()
            End If
    

    logra mandar los datos del grid (form1) al siguiente formulario (form2), pero solo los envía de uno en uno y hay que seleccionar una fila especifica para poderla enviar, alguien me echa una mano y me dice como mandar todas las filas a la vez...

    Nota: el 1er Grid lo lleno con un procedimiento almacenado que esta ligado a un Linq, el grid del form2 esta vacio y no esta ligado a nada

    Nota 2: el codigo que muestro lo saque de estos mismos foros y lo adapte a mis necesidades, solo que no concibo lograr lo que quiero :/

    jueves, 2 de marzo de 2017 16:42
  • Aquí  dejo una imagen de lo que explique:

    el evento de mandar los registros están hubicados en botón en el evento clik

    jueves, 2 de marzo de 2017 16:46