CONSULTA DE DATOS CON 2 DATAGRIDVIEW Y UNA IMAGEN EN VISUAL BASIC - VISUAL STUDIO 2019



El primer DataGridView será para las categorías disponibles en la base de datos y de acuerdo a la categoría que es seleccionada el segundo DataGridView listará los productos que le pertenecen, además de mostrar la imagen.

Base de datos
Tuve que crear mi propia base de datos 😆 porque la original lo perdí 😅
Estas son las tablas necesarias categoría y productos.


Procedimientos almacenados

Para listar categoría, ubicar la imagen y los productos por el código de la categoría


Use VaidrollTeamProductos
go

create proc sp_listarcategorias
as
select idcategoria,nombrecategoria from categoria
go

create proc sp_fotodelacategoria
@codigo int
as
select imagen from categoria where idcategoria=@codigo
go

create proc sp_productoporcategoria
@codigo int
as
select idproductos,nombreproducto,cantidad from productos where idcategoria=@codigo
go

exec sp_listarcategorias
exec sp_fotodelacategoria 1
exec sp_productoporcategoria 1


Clase 1

Creamos la conexión y las funciones para listar las categorías, la imagen y los productos que pertenecen a la categoría seleccionada

Imports System.Data.SqlClient
Public Class Class1
    Dim cn As New SqlConnection("server=localhost\SQLEXPRESS;integrated security=true;database=VaidrollTeamProductos")

    Public Function ListarCategorias() As DataTable
        Dim da As New SqlDataAdapter("sp_listarcategorias", cn)
        Dim tbl As New DataTable
        da.Fill(tbl)
        Return tbl
    End Function

    Public Function ImagenCategoria(ByVal idcategoria As Integer) As DataTable
        Dim cmd As New SqlCommand("sp_fotodelacategoria", cn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add("@codigo", SqlDbType.Int).Value = idcategoria
        Dim das As New SqlDataAdapter(cmd)
        Dim tbl As New DataTable
        das.Fill(tbl)
        Return tbl
    End Function

    Public Function ProductosPorCategoria(ByVal idcategoria As Integer) As DataTable
        Dim cmd As New SqlCommand("sp_productoporcategoria", cn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add("@codigo", SqlDbType.Int).Value = idcategoria
        Dim das As New SqlDataAdapter(cmd)
        Dim tbl As New DataTable
        das.Fill(tbl)
        Return tbl
    End Function
End Class

Formulario principal

Primero los datos del DataGridView1,  luego en su evento "CellClick" al seleccionar una categoría el segundo DataGridView2 mostrará los productos de la categoría y el PictureBox1 la imagen.


Imports System.IO
Public Class Form1

    Dim obj As New Class1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        DataGridView1.DataSource = obj.ListarCategorias

        Dim n = 1


        DataGridView2.DataSource = obj.ProductosPorCategoria(n)

        Dim tabla As DataTable = obj.ImagenCategoria(n)
        Dim paralaimagen() As Byte = CType(tabla.Rows(0)(0), Byte())
        Dim varms As New MemoryStream(paralaimagen)
        PictureBox1.Image = Image.FromStream(varms)

    End Sub

    Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick

        Dim n = DataGridView1.Item(0, e.RowIndex).Value


        DataGridView2.DataSource = obj.ProductosPorCategoria(n)

        Dim tabla As DataTable = obj.ImagenCategoria(n)
        Dim paralaimagen() As Byte = CType(tabla.Rows(0)(0), Byte())
        Dim varms As New MemoryStream(paralaimagen)
        PictureBox1.Image = Image.FromStream(varms)

    End Sub
End Class






 



  • Visual Studio 2019
  • Microsoft SQL Server Management Studio 18



  • Nombre          : ConsultaConImagenVB
  • Tamaño          : 106 KB