CONSULTA DE DATOS con VISUAL BASIC .NET + SQL SERVER


Un pequeño proyecto donde vamos hacer uso de una base de datos para llenar un ComboBox y 2 DataGridView.

Base de datos y procedimientos almacenados

La base de datos a trabajar es Neptuno.

Creamos el procedimiento para listar los clientes que irá en el ComboBox, una vez que sea seleccionado el cliente el DataGridView1 mostrará un listado de productos que ha comprado, por lo que en el procedimiento 2 hay un parámetro, por último el procedimiento 3 permitirá listar los empleados que vendieron el producto al cliente y lo mostrará en el DataGridView2.

Use Neptuno
Go

Create proc pro_1
as
select IdCliente, NombreCompañia
from Clientes
Go

Create proc pro_2
@idCliente char(5)
as
select d.IdProducto, NombreProducto, Sum(Cantidad) as [Nruo. Prod. Comprados]
from Pedidos p, [Detalles de pedidos] d, Productos pr
where p.IdPedido=d.IdPedido and pr.IdProducto=d.IdProducto and IdCliente=@idCliente
group by d.IdProducto, NombreProducto
order by d.IdProducto asc
go

Create proc pro_3
@idproducto int,
@idcliente char(5)
as
select p.IdEmpleado, Apellidos+SPACE(2)+Nombre as [Nombre de empleado], e.Cargo, DATEDIFF(year,FechaContratacion,GETDATE()) as [Año laboral]
from Empleados e, Pedidos p, [Detalles de pedidos] d
where e.IdEmpleado=p.IdEmpleado and p.IdPedido=d.IdPedido and IdProducto=@idproducto and IdCliente=@idcliente
go

Como se trata solo de consultas todo lo podemos hacer en un formulario.

Formulario

Realizamos la conexión al SQL.

   Dim cn As New SqlConnection("Server=localhost\SQLEXPRESS;Integrated security=SSPI;Database=Neptuno")

Hacemos uso del primero procedimiento almacenado y a la vez cargamos los datos o clientes en el ComboBox.

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim da As New SqlDataAdapter("pro_1", cn)
        Dim tbl As New DataTable
        da.Fill(tbl)
        ComboBox1.DataSource = tbl
        ComboBox1.DisplayMember="NombreCompañia"
        ComboBox1.ValueMember = "IdCliente"
    End Sub

Luego de seleccionar al cliente, el evento SelectedIndexChanged hará uso del segundo procedimiento tomando el idcliente para listar los productos.

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        Try
            Dim idcliente As String = ComboBox1.SelectedValue
            Dim cmd As New SqlCommand("pro_2", cn)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add("@idCliente", SqlDbType.Char, 5).Value = idcliente
            Dim da As New SqlDataAdapter(cmd)
            Dim tbl As New DataTable
            da.Fill(tbl)
            DataGridView1.DataSource = tbl

        Catch ex As Exception

        End Try
    End Sub

Entonces ya tenemos el id del cliente y el id del producto, el evento CellClick del primer DataGridView1 usará el último procedimiento y los códigos para listar los empleados que vendieron el producto al cliente seleccionado.

    Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Dim idproducto As Integer = CInt(DataGridView1.Item(0, e.RowIndex).Value)
        Dim cmd As New SqlCommand("pro_3", cn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add("@idproducto", SqlDbType.Int).Value = idproducto
        cmd.Parameters.Add("@idcliente", SqlDbType.Char, 5).Value = ComboBox1.SelectedValue
        Dim da As New SqlDataAdapter(cmd)
        Dim tbl As New DataTable
        da.Fill(tbl)
        DataGridView2.DataSource = tbl
    End Sub



Seleccionamos un cliente


El DataGridView1 listará los productos que compro el cliente


El DataGridView2 listará a los empleados que vendieron el producto







  • Visual Studio 2019
  • Microsoft SQL Server Management Studio 18


  • Nombre         ConsultaVB.rar
  • Tamaño         : 265 KB