none
Copiar fila seleccionada de DataGridView1 a DataGridView2 RRS feed

  • Pregunta

  • Necesito copiar la fila seleccionada de DataGridView1 a DataGridView2 y luego eliminarla de DataGridView1. Adjunto el código desarrollado que está mal porqué me copia siempre la primera fila activa. Gracias por su apoyo.
    Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
            For i As Integer = 0 To DataGridView1.Rows.Count - 2
                For x As Integer = 0 To DataGridView1.ColumnCount - 1
                    If DataGridView1.Rows(i).Cells(x).Value.ToString.Contains(TextBox2.Text) Then
                        DataGridView1.Rows(i).Selected = True
                        Dim Col1 As String = DataGridView1.Rows(i).Cells(0).Value
                        Dim Col2 As String = DataGridView1.Rows(i).Cells(1).Value
                        Dim Col3 As String = DataGridView1.Rows(i).Cells(2).Value
                        Dim Col4 As String = DataGridView1.Rows(i).Cells(3).Value
                        DataGridView2.Rows.Add(Col1, Col2, Col3, Col4)
                        For Each r As DataGridViewRow In DataGridView1.SelectedRows
                            DataGridView1.Rows.Remove(r)
                        Next
                        DataGridView1.ClearSelection()
                        Exit Sub
                    End If
                Next x
            Next i
            MsgBox("Error de Picking")
            TextBox2.Text = ""
        End Sub

    domingo, 2 de febrero de 2020 21:17

Todas las respuestas

  • hola micky

    En este blog de @LeandroTuttini explica como realizar el paso de datos de un datagrid a otro datagrid es facil de implementar peroo.... esta en c# http://ltuttini.blogspot.com/2010/04/datagridview-pasar-registros-entre.html

    creo que si utilizas convertir c# a vb de telerik http://converter.telerik.com/

    lunes, 3 de febrero de 2020 12:58
  • Hola:

    En un Form como el de la imagen

    Copia y pega el siguiente codigo

    Option Strict On
    Option Explicit On
    Imports System.Data.SqlClient
    Public Class Form3
        Private msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
        Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
            DataGridView1.AllowUserToAddRows = False
            DataGridView2.AllowUserToAddRows = False
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection(msCadenaSQL)
                    ' crear adaptador
                    Dim daCustomers As New SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", loConexion)
                    Dim loDataTable As New DataTable
                    daCustomers.Fill(loDataTable)
                    Me.DataGridView1.DataSource = loDataTable
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
            'Clonar o reproducir la estructura de DataGridView1 en DataGridView2
            Me.DataGridView2.ColumnCount = Me.DataGridView1.ColumnCount
            For x As Integer = 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

        Private Sub DataGridView1_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = Me.DataGridView1.CurrentRow()
            '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) = CStr(loFila.Cells(Ndx).Value)
            Next
            Me.DataGridView2.Rows.Add(Contenido)
            Me.DataGridView1.Rows.Remove(loFila)
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    lunes, 3 de febrero de 2020 15:14