none
¿Como puedo mover una fila de un datagridview a otro? RRS feed

  • Pregunta

  • Hola benas. Tengo un problema a querer mover una fila de un Datagridview a otro, ocurre que cuando quiero agregar la fila al otro dtgrid me salta el siguiente error :

    'No se pueden agregar filas mediante programación a la colección de filas de DataGridView cuando el control está enlazado a datos.'

    PD: ambos datgrid estan enlazados al mismo dataset

    Private Sub moverQx(ByRef sender As Object, ByRef e As EventArgs)
            Dim dr As New DataGridViewRow
            Select Case sender.name
                Case btLeft.Name
                    dr = dgvNoAsociados.CurrentRow
                    dgvAsociados.Rows.Add(dr.AccessibilityObject.Value)
                    dgvNoAsociados.Rows.Remove(dr)
                Case btRight.Name
                    dr = dgvNoAsociados.CurrentRow
                    dgvNoAsociados.Rows.Add(dr.AccessibilityObject.Value)
                    dgvAsociados.Rows.Remove(dr)
            End Select
    
        End Sub




    jueves, 24 de octubre de 2019 22:07

Todas las respuestas

  • Hola Moises, tu DGV está cargado desde base de datos o similar, utiliza para cargar DataSource, en ese caso para eliminar un row o agregar hay que actuar sobre el origen. Seguramente cargas mediante DataTable, pues allí ejecutas la eliminación del rown y se verá reflejada en el DGV. El mismo código expuesto has que actue sobre DataTable asociado y, una vez terminado, ejecuta  TuDataTabla.AcceptChanges()

    Saludos


    ARA San Juan 44 HEROES     ‗‗‗‗­|||||‗‗‗‗‗

    viernes, 25 de octubre de 2019 4:59
  •  Private Sub moverQx(ByRef sender As Object, ByRef e As EventArgs)
            Dim indexFila As Integer
            Select Case sender.name
                Case btLeft.Name
                    indexFila = dgvNoAsociados.CurrentRow.Index
    
                    paciente.dtsAsociado.Tables("table").ImportRow(paciente.dtsAsociado.Tables("table1").Rows.Item(indexFila))
                    paciente.dtsAsociado.Tables("table1").Rows.Item(indexFila).Delete()
                    paciente.dtsAsociado.Tables("table1").AcceptChanges()
                    paciente.dtsAsociado.Tables("table").AcceptChanges()
                Case btRight.Name
                    indexFila = dgvAsociados.CurrentRow.Index
    
                    paciente.dtsAsociado.Tables("table1").ImportRow(paciente.dtsAsociado.Tables("table").Rows.Item(indexFila))
                    paciente.dtsAsociado.Tables("table").Rows.Item(indexFila).Delete()
                    paciente.dtsAsociado.Tables("table1").AcceptChanges()
                    paciente.dtsAsociado.Tables("table").AcceptChanges()
            End Selecet
    Claro, pude solucionarlo desde el origen, Gracias..!!

    • Propuesto como respuesta Pablo Rubio viernes, 25 de octubre de 2019 16:37
    viernes, 25 de octubre de 2019 15:00
  • hola moises

    creo que es mejor que te guies de este foro me sirvio mucho http://ltuttini.blogspot.com/2010/04/datagridview-pasar-registros-entre.html 

    espero que sea lo que buscas

    • Propuesto como respuesta Pablo Rubio viernes, 25 de octubre de 2019 16:37
    viernes, 25 de octubre de 2019 15:48