none
ayuda con este grid RRS feed

  • Pregunta

  • este lo utilizo para buscar datos y  mostrar en u n grid pero no llena el grid hago uso de mysql para el SP

     Private Sub btnmostrar_Click(sender As Object, e As EventArgs) Handles btnmostrar.Click
            Me.DataGridKardex.AutoGenerateColumns = False
                       Me.DataGridKardex.DataSource = conee.ObtenerKardexPorCriterio(Me.maskbuscar.Text)
        End Sub

     Public Function ObtenerKardexPorCriterio(ByVal descripcion As String) 'As List(Of inmagenes)
            Dim lista As New List(Of inmagenes)()
            Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("default").ToString)
                Dim ds As New DataSet
                Dim da As New MySqlDataAdapter
                Using cmd As New MySqlCommand("Mostrar_Kardex", conn)
                    conn.Open()
                    cmd.CommandType = CommandType.StoredProcedure
                    cmd.Parameters.AddWithValue("?Criterio", descripcion)
                    Dim reader As MySqlDataReader = cmd.ExecuteReader
                    While reader.Read
                        lista.Add(LoadArticulo(reader))
                    End While
                End Using
                Return ds
            End Using
        End Function
        Private Function LoadArticulo(ByVal reader As IDataReader) As inmagenes
            Dim articulo As New inmagenes
            articulo.codigoProducto = reader("cod_produc")
            articulo.StockMaxi = reader("stockmaximo")
            articulo.StockMinimo = reader("stockminimo")
            articulo.cantidad = reader("cantidad")
            articulo.kar_nombre = reader("Nombre")
            articulo.kar_nombres = reader("nombre")
            articulo.PCOSTO = reader("pcosto")
            articulo.PVTA = reader("PVta")
            articulo.costo1 = reader("descuento")
            Return articulo
        End Function

    CREATE DEFINER=`root`@`localhost` PROCEDURE `Mostrar_Kardex`(
    IN Criterio VARCHAR(150)
    )
    BEGIN
    SELECT     productos.cod_produc,
            productos.nombre,
            productos.stockmaximo,
            productos.stockminimo,
            productos.pcosto,
            productos.PVta,
            categorias.Nombre,
            detalleventa.cantidad,
            detalleventa.descuento
            FROM productos
            INNER JOIN categorias ON productos.idcategoria = categorias.idcategoria
            INNER JOIN detalleventa ON productos.cod_produc = detalleventa.cod_producto
            where cod_produc LIKE CONCAT('%',Criterio, '%');
    END

    martes, 1 de octubre de 2013 0:36

Todas las respuestas

  • hola

    validaste de ejecutar el procedue de forma independiente,quizas desde alguna tool de mysql para validar si es correcto y devuelve registros ?

    es que quizas el problema sean los inner join del reporte los cuales no devuelve resultado

    prueba de ejecutar

    SELECT     productos.cod_produc,
    	productos.nombre,
    	productos.stockmaximo,
    	productos.stockminimo,
    	productos.pcosto,
    	productos.PVta,
    	'' as Nombre,
    	'' as cantidad,
    	'' as descuento
    	FROM productos
    	where cod_produc LIKE CONCAT('%',Criterio, '%');

    dentro del procedure para validar que no sean los join el problema, luego ve agregandolo de a uno verificando que hay registros en la relacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 1 de octubre de 2013 5:57
  • La verdad no entiendo este método

    Public Function ObtenerKardexPorCriterio(ByVal descripcion As String) 'As List(Of inmagenes)
             Dim lista As New List(Of inmagenes)()
             Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("default").ToString)
                 Dim ds As New DataSet
                 Dim da As New MySqlDataAdapter
                 Using cmd As New MySqlCommand("Mostrar_Kardex", conn)
                     conn.Open()
                     cmd.CommandType = CommandType.StoredProcedure
                     cmd.Parameters.AddWithValue("?Criterio", descripcion)
                     Dim reader As MySqlDataReader = cmd.ExecuteReader
                     While reader.Read
                         lista.Add(LoadArticulo(reader))
                     End While
                 End Using
                 Return ds
             End Using
         End Function

    Usas un dataset, pero luego cargas una lista. Devuelves un dataset vacío,

    no deberia ser

     Public Function ObtenerKardexPorCriterio(ByVal descripcion As String) As List(Of inmagenes)
             Dim lista As New List(Of inmagenes)()
             Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("default").ToString)
                 'Dim ds As New DataSet
                 'Dim da As New MySqlDataAdapter
                 Using cmd As New MySqlCommand("Mostrar_Kardex", conn)
                     conn.Open()
                     cmd.CommandType = CommandType.StoredProcedure
                     cmd.Parameters.AddWithValue("?Criterio", descripcion)
                     Dim reader As MySqlDataReader = cmd.ExecuteReader
                     While reader.Read
                         lista.Add(LoadArticulo(reader))
                     End While
                 End Using
                 'Return ds
                  Return lista
             End Using
         End Function

    O sea devolver la lista que se le asigna al grid??

    Marco en negrita los cambio que he hecho


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    martes, 1 de octubre de 2013 6:36
  • hola

    validaste de ejecutar el procedue de forma independiente,quizas desde alguna tool de mysql para validar si es correcto y devuelve registros ?

    es que quizas el problema sean los inner join del reporte los cuales no devuelve resultado

    prueba de ejecutar

    SELECT     productos.cod_produc,
    	productos.nombre,
    	productos.stockmaximo,
    	productos.stockminimo,
    	productos.pcosto,
    	productos.PVta,
    	'' as Nombre,
    	'' as cantidad,
    	'' as descuento
    	FROM productos
    	where cod_produc LIKE CONCAT('%',Criterio, '%');

    dentro del procedure para validar que no sean los join el problema, luego ve agregandolo de a uno verificando que hay registros en la relacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    wçen los registros hay relacion y contienen datos el problema es que no logro llenar el grid
    domingo, 6 de octubre de 2013 21:04
  • Analizaste mi respuesta?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 6 de octubre de 2013 21:11
  • La verdad no entiendo este método

    Public Function ObtenerKardexPorCriterio(ByVal descripcion As String) 'As List(Of inmagenes)
             Dim lista As New List(Of inmagenes)()
             Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("default").ToString)
                 Dim ds As New DataSet
                 Dim da As New MySqlDataAdapter
                 Using cmd As New MySqlCommand("Mostrar_Kardex", conn)
                     conn.Open()
                     cmd.CommandType = CommandType.StoredProcedure
                     cmd.Parameters.AddWithValue("?Criterio", descripcion)
                     Dim reader As MySqlDataReader = cmd.ExecuteReader
                     While reader.Read
                         lista.Add(LoadArticulo(reader))
                     End While
                 End Using
                 Return ds
             End Using
         End Function

    Usas un dataset, pero luego cargas una lista. Devuelves un dataset vacío,

    no deberia ser

     Public Function ObtenerKardexPorCriterio(ByVal descripcion As String) As List(Of inmagenes)
             Dim lista As New List(Of inmagenes)()
             Using conn As New MySqlConnection(ConfigurationManager.ConnectionStrings("default").ToString)
                 'Dim ds As New DataSet
                 'Dim da As New MySqlDataAdapter
                 Using cmd As New MySqlCommand("Mostrar_Kardex", conn)
                     conn.Open()
                     cmd.CommandType = CommandType.StoredProcedure
                     cmd.Parameters.AddWithValue("?Criterio", descripcion)
                     Dim reader As MySqlDataReader = cmd.ExecuteReader
                     While reader.Read
                         lista.Add(LoadArticulo(reader))
                     End While
                 End Using
                 'Return ds
                  Return lista
             End Using
         End Function

    O sea devolver la lista que se le asigna al grid??

    Marco en negrita los cambio que he hecho


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    si analice tu consulta y de igual manera no logro llenar el grid el sp esta bien lo ejecuto la query con el datos y me devulve el los registros  y me devuelve en DataSource  un dato que es lo que hay pero no me llena el grid
    domingo, 6 de octubre de 2013 21:22
  • En este metodo si usas un gridview de asp.net, claro esta ya que no lo has indicado

    Private Sub btnmostrar_Click(sender As Object, e As EventArgs) Handles btnmostrar.Click
            Me.DataGridKardex.AutoGenerateColumns = False
                       Me.DataGridKardex.DataSource = conee.ObtenerKardexPorCriterio(Me.maskbuscar.Text)
        End Sub

    antes del end sub ejecuta .DataBind()


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    domingo, 6 de octubre de 2013 21:45