none
Pasar datos de un datagridview a otro

    Question

  • Buenas tardes..., utilizo access 2010 y vb.net

    Como pasar solo algunas filas de un datagridview1 (conectado a un datatable) a otro datagridview2 de solo lectura (tambien conectado a un datatable), es decir, del primer dgv solo quiero copiar 2 columnas (no toda la fila) al datagridview2. Por ejemplo: al terminar de editar la columna 2, y pulsar enter se pase al datagridview2 y se borre del datagridview1...

    saludos...

    Monday, May 20, 2013 8:53 PM

All replies

  • hola

    analzia este articulo

    [DataGridView] – Pasar Registros entre Grillas

    creo que podria darte una idea de como lograrlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Monday, May 20, 2013 9:06 PM
  • gracias leandro, trate de aplicar tu codigo, no me quedo algo muy claro, mira encontre este codigo (que muestro abajo)... para que lo pueda aplicar a mi proyecto, pero no encuentro la forma de que como mover solo algunas columnas de una fila y agregarlas al otro datagridview... y se borre la fila completa del DGV1.

    Pongo el codigo, para que lo chequen y me puedan ayudar a continuar con mi proyecto, estoy atorado en esta parte.., les explico como funciona... al hacer doble clic sobre alguna columna y modificarla, al salir de esa columna, me envia la fila al DGV2 y lo borra del DGV1...

    Por ejemplo: en el DGV1 tengo 4 columnas y en el DGV2 tengo 2 columnas en comun

    DGV1:  "IDdgv1" - "Descripcion"  - "PrecioUnitario" - "UnidadMedida"

    DGV2: "IDdgv2" - "Precio Unitario" - "Entre otras colmnas"

    Entonces si edito la columna precio unitario, esta se pase al DGV2, solo su IDdgv1 y el preciounitario....

    Imports System.Data.OleDb
    
    Public Class Form1
        '
        'Definir objectos de conexion a base de datos
        Private MiConexion As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Productos.mdb;")
        Private MiAdaptador As New OleDbDataAdapter("SELECT * FROM Productos", MiConexion)
        Private MiDataSet As New DataSet()
        Private MiEnlazador As New BindingSource
        '
        'tareas en tiempo de carga de la aplicación
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim x As Integer
            'Abrir conexion y llenar el dataset
            MiConexion.Open()
            MiAdaptador.Fill(MiDataSet)
            Dim commandbuilder As New OleDb.OleDbCommandBuilder(Me.MiAdaptador)
            'Asignamos el origen de datos para del DataGridView
            DataGridView1.DataSource = MiDataSet.Tables(0)
            'Cerrar la conexión
            MiConexion.Close()
            'Clonar o...
            'Reproducir la estructura del 1er dataGrid en DataGridView2
            Me.DataGridView2.ColumnCount = Me.DataGridView1.ColumnCount
    
            For x = 0 To Me.DataGridView1.ColumnCount - 1
                Me.DataGridView2.Columns(x).Name = Me.DataGridView1.Columns(x).Name
                Me.DataGridView2.Columns(x).HeaderText = Me.DataGridView1.Columns(x).HeaderText
            Next
        End Sub
    
        '
        'Mover los elementos seleccionados del DGV1 al DGV2
        Sub MoverSeleccionadosDGV1aDGV2()
            'Para cada fila seleccionada
            For Each Seleccion As DataGridViewRow In DataGridView1.SelectedRows
                'Añadir los valores obtenidos de la fila seleccionada
                'al segundo datagridview
                Me.DataGridView2.Rows.Add(ObtenerValoresFila(Seleccion))
                'eliminar la fila del DataGridView origen
                DataGridView1.Rows.Remove(Seleccion)
            Next
    
        End Sub
        '
        'Obtener el contenido de la fila en un string() con el proposito de copiarlo o moverlo
        '
        'Recibe el 'row' y retorna su contenido en un array tipo string
        Function ObtenerValoresFila(ByVal fila As DataGridViewRow) As String()
            'Dimensionar el array al tamaño de columnas del DGV
            Dim Contenido(Me.DataGridView1.ColumnCount - 1) As String
            'Rellenar el contenido con el valor de las celdas de la fila
            For Ndx As Integer = 0 To Contenido.Length - 1
                Contenido(Ndx) = fila.Cells(Ndx).Value
            Next
            Return Contenido
        End Function
    
        Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
            MoverSeleccionadosDGV1aDGV2()
        End Sub
    End Class

    gracias de antemano... por el apoyo recibido


    • Edited by JungenB Friday, May 24, 2013 6:36 PM
    Friday, May 24, 2013 6:30 PM