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

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.
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ú.
- Editado Augusto1982 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 :)
-
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 :/
- Combinado Enrique M. Montejo domingo, 5 de marzo de 2017 7:33 Preguntas relacionadas
-