none
Cargar DatagridView desde un Datatable.

    Pregunta

  •  Buenas a todos.

     Soy nuevo en este lenguaje, y me gustaria saber como dice el titulo Cargar datos a una DatagridView desde un Datatable.

     Tengo la siguiente Funcion:

      Public Function CargarPrecio(ByVal empcodigo As Long) As DataTable
            dt.Rows.Clear()

            conexion.Abrir(sqlc)

            sql = ""
            sql = "SELECT LP.CODARTICULO, RTRIM(A.CODIGOBARRA) AS CODIGOBARRA, RTRIM(A.CODIGOORIGINAL) AS CODIGOORIGINAL,   RTRIM(A.DESCRIPCION) AS DESARTICULO, " &
               "LP.CODSUCURSAL,RTRIM(S.NROSUCURSAL) AS NROSUCURSAL,RTRIM(S.DESSUCURSAL) AS DESSUCURSAL,  " &
               "LP.CODTIPOCLIENTE, RTRIM(TC.NROTIPOCLIENTE) AS NROTIPOCLIENTE, RTRIM(TC.DESCRIPCION) AS DESTIPOCLIENTE, " &
               "LP.CODMONEDA, RTRIM(M.NROMONEDA) AS NUMMONEDA,  RTRIM(M.DESMONEDA) AS DESMONEDA, " &
               "LP.PRECIOVENTA AS PRECIOVENTA, " &
               "LP.USUARIOGRAB, LP.EMPRESA, " &
               "LP.FECHAGRAB, M.CANTIDADDECIMAL " &
               "FROM LISTAPRECIO LP INNER JOIN SUCURSAL S ON LP.CODSUCURSAL = S.CODSUCURSAL " &
               "INNER JOIN MONEDA M ON LP.CODMONEDA = M.CODMONEDA " &
               "INNER JOIN TIPOCLIENTE TC ON LP.CODTIPOCLIENTE = TC.CODTIPOCLIENTE " &
               "INNER JOIN ARTICULO A ON LP.CODARTICULO = A.CODARTICULO " &
               "WHERE LP.EMPRESA = " & empcodigo & "" &
               "ORDER BY NROSUCURSAL, DESTIPOCLIENTE "

            Try
                cmd.Connection = sqlc
                cmd.CommandText = sql

                da = New SqlDataAdapter(cmd)

                da.Fill(dt)
            Catch ex As Exception
                MsgBox(ex.ToString)
            Finally
                conexion.Cerrar(sqlc)
            End Try

            Return dt

        End Function

     Los datos de la dt quiero agregarlas al DataGridView con las siguientes columnas ya definidas mediante formulario:

    Código de Barra, Codigo Original, Descripcion (del articulo), Sucursal (DESSUCURSAL), Tipo de Cliente (DESTIPOCLIENTE), Moneda (DESMONEDA) y Precio de Venta..

    Si lo hago de esta manera:

    dgPrecios.DataSource = dt

    Esto asignaria crudamente el contenido del dt.

    La idea es que no muestre los codigos (clave primaria en la base de datos) y NROs..

    Agradeceria sus ayudas.

    Mis saludos cordiales.

    miércoles, 1 de marzo de 2017 23:33

Respuestas

  • Atsushi Kusunose,

    Lo primero que debes de hacer es configurar la propiedad 'AutoGenerateColumns' a False para impedir que las columnas se generen automáticamente según las columnas que contiene el origen de datos vinculado, luego debes configurar la propiedad 'DataPropertyName' -por cada columna del objeto de tipo DataGridView- asignando el nombre de la columna -del origen- con el cual se va a vincular (mapear)

    DataGridView1.AutoGenerateColumns = False
    
    DataGridView1.Columns(0).DataPropertyName = "CODIGOBARRA"
    DataGridView1.Columns(1).DataPropertyName = "CODIGOORIGINAL"
    'Todas las columnas
    
    DataGridView1.DataSource = CargarPrecio(Valor)



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 1 de marzo de 2017 23:55