none
Seleccion de productos para pedidos en un local de comida rápida RRS feed

  • Pregunta

  • Hola buenas! tengo un dilema en visual basic.net, soy nuevo en esto.  Con orígenes de datos muestro una lista de productos en un DataGridView desde una base de datos SQLServer.

    El problema es que los productos o filas que selecciono, quiero mostrarla en el 2do DGV dentro del mismo formulario, pero no se muestran en el DGV de pedidos cuando presiono doble click o el botón agregar.

    Cómo puedo mostrar únicamente la fila seleccionadas del 1er DGV en el 2do DGV ?

     

    miércoles, 5 de junio de 2019 2:02

Respuestas

  • Hola:
    En un Form como el de la imagen

    Copia y pega el siguiente código

    Option Explicit On
    Option Strict On
    Imports System.Data.SqlClient
    Public Class FrmCopiaBorra
        Private msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
        Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            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_CellContentClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
            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)
        End Sub

        Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellContentClick
            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = Me.DataGridView2.CurrentRow()
            Me.DataGridView2.Rows.Remove(loFila)
        End Sub
    End Class

    P.D.
    Prueba haciendo click en las filas de los 2 DGV

    Un saludo desde Bilbo
    Carlos

    miércoles, 5 de junio de 2019 5:55