You are on page 1of 14

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

GUIA PRACTICA 1 VISUAL BASIC 2012 + SQL SERVER


MANTENIMIENTO DE UNA TABLA
1. Elaborar una aplicacin windows en Visual Basic 2012 que realice el mantenimiento de la tabla
Proveedor. Utilice procedimientos almacenados para las operaciones con la base de datos.
Implemente un men de opciones.
Solucin
Paso 1: Elaborar el Modelo Entidad Interrelacin de la base de datos BDALMACEN.
PROVEEDOR
ENTRADA_ALMACEN

nombre_prov
direc_prov

nro_entrada
nro_factura (FK)
FACTURA

id_proveedor

fecha
id_proveedor (FK)

nro_factura
descripcion
total_bienes
valor_total

AREAS
id_area
nombre_area
descripcion

DETALLE_ENTRADA
nro_entrada (FK)
nro_factura (FK)
id_item (FK)
DETALLE_FACTURA
nro_factura (FK)
id_item (FK)
cantidad

cantidad

SALIDA_ALMACEN
nro_salida

ITEM

empleado_responsable
fecha_salida
fecha_entrega
id_area (FK)
nro_entrada (FK)
nro_factura (FK)

id_item
nombre

INVENTARIO
cod_unico
responsable
fecha
stock
id_item (FK)

DETALLE_ITEM
id_item (FK)
nro_salida (FK)
cantidad

Paso 2: Migrar el modelo anterior al gestor de base de datos SQLServer 2012.

ING. FRANCISCO RODRIGUEZ N.

Pg 1

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

DETALLE_ ENTRADA
nro_entrada

FACTURA
nro_factura
descripcion

nro_factura
id_item
cantidad

total_bienes
valor_total

ITEM
id_item

ENTRADA_ ALMACEN

nombre

nro_entrada
fecha
nro_factura
id_proveedor

DETALLE_ FACTURA
nro_factura
id_item
cantidad

SALI DA_ ALMACEN


nro_salida
empleado_responsable
fecha_salida

I NVENTARI O

fecha_entrega

cod_unico

id_area
nro_entrada
nro_factura

PROVEEDOR
id_proveedor
nombre_prov

DETALLE_ ITEM

responsable

id_item

fecha

nro_salida

stock

cantidad

id_item

AREAS

direc_prov

id_area
nombre_area
descripcion

Paso 3: Implementar en la base de datos los siguientes procedimientos almacenados.


a). sp_insertaProv
b). sp_ListaProv
c). sp_BuscaProv
d). sp_ActualizaProv
e). sp_EliminaProv
CREATE PROCEDURE SP_INSERTAPROV
@PIDPROV VARCHAR(10),
@PNOMBPROV VARCHAR(20),
@PDIRPROV VARCHAR(20)
AS
BEGIN
INSERT INTO PROVEEDOR(id_proveedor,nombre_prov,direc_prov)
VALUES (@PIDPROV,@PNOMBPROV,@PDIRPROV)
END
CREATE PROCEDURE SP_LISTAPROV
AS
BEGIN
SELECT * FROM PROVEEDOR
END

ING. FRANCISCO RODRIGUEZ N.

Pg 2

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

CREATE PROCEDURE SP_BUSCAPROV


@PIDPROV VARCHAR(10)
AS
BEGIN
SELECT * FROM PROVEEDOR WHERE id_proveedor=@PIDPROV
END
CREATE PROCEDURE SP_ACTUALIZAPROV
@PIDPROV VARCHAR(10), @PNOMBPROV VARCHAR(20), @PDIRPROV VARCHAR(20)
AS
BEGIN
UPDATE PROVEEDOR SET nombre_prov=@PNOMBPROV, direc_prov=@PDIRPROV
WHERE id_proveedor=@PIDPROV
END
CREATE PROCEDURE SP_ELIMINAPROV
@PIDPROV VARCHAR(10)
AS
BEGIN
DELETE FROM PROVEEDOR
WHERE id_proveedor=@PIDPROV
END
Paso 4: Iniciar Visual Studio 2010

Paso 5: En el Men Contextual indicar Archivo Nuevo Proyecto Aplicacin de Windows Form
Aceptar
Para dar nombre y ubicacin al proyecto. Indicar Archivo Guardar todo. Indicar el nombre y
ubicacin del proyecto. Luego indicar Guardar.

ING. FRANCISCO RODRIGUEZ N.

Pg 3

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Paso 6: En el primer formulario (Form1) cambia la propiedad text a MENU y la propiedad name a
FormMenu.

ING. FRANCISCO RODRIGUEZ N.

Pg 4

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Paso 7: De la paleta de Herramientas agregar un control (objeto) MenuStrip en el formulario Menu


y escribir las opciones del men.(Si no visualiza el cuadro de herramientas en el men de opciones
Ver Cuadro de Herramientas)

Paso 8: En el explorador de soluciones (superior derecha) Marcar ProyectoAlmacen click derecho


Agregar WindowsForm Agregue un Windows form (Form1). Cambiar el texto y name de este
formulario por el de FormProveedor.

ING. FRANCISCO RODRIGUEZ N.

Pg 5

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Paso 9: En el FormProveedor incorporar los controles (objetos) que se indican

OBJETO
Label1
Label2
Label3
GroupBox1
GroupBox2

ING. FRANCISCO RODRIGUEZ N.

ATRIBUTO
Text
Text
Text
Text
Text

VALOR
CODIGO
NOMBRES
DIRECCION
Datos Personales
Operaciones

Pg 6

INGENIERIA INDUSTRIAL

TextBox1
TextBox2
TextBox3
DataGridView
Button1
Button2
Button3
Button4
Button5

INGENIERIA DE SOFTWARE

Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name

txtcodigo
txtnombres
txtdireccion
DGVProveedor
Registrar
BtnRegistrar
Actualizar
BtnActualizar
Eliminar
BtnEliminar
Buscar
BtnBuscar
Limpiar
BtnLimpiar

Paso 10: En el Men, en la opcin Proveedor dar doble click y escribir el siguiente cdigo (para el
llamado de los formularios desde el Menu Principal).

Private Sub ProveedorToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles ProveedorToolStripMenuItem.Click
Dim MnuProveedor As New FormProveedor
MnuProveedor.Show()
End Sub

Paso 11: En el explorador de soluciones (superior derecha) Marcar ProyectoAlmacen click


derecho Agregar Clase. Implementar la clase Proveedor con sus correspondientes atributos y
mtodos.

ING. FRANCISCO RODRIGUEZ N.

Pg 7

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Imports System.Data.SqlClient
Public Class Proveedor
Private idProv, nombProv, dirProv As String
Private conn As SqlConnection
Private cmd As SqlCommand
Private strConn As String = "SERVER=localhost;DATABASE=BDALMACEN;Integrated
Security=SSPI;"
Sub New()
conn = New SqlConnection(strConn)
End Sub

ING. FRANCISCO RODRIGUEZ N.

Pg 8

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Sub New(ByVal tid As String, ByVal tnombre As String, ByVal tdir As String)
Me.idProv = tid
Me.nombProv = tnombre
Me.dirProv = tdir
conn = New SqlConnection(strConn)
End Sub
Public Property fidProv() As String
Get
Return Me.idProv
End Get
Set(ByVal value As String)
Me.idProv = value
End Set
End Property
Public Property fnombProv() As String
Get
Return Me.nombProv
End Get
Set(ByVal value As String)
Me.nombProv = value
End Set
End Property
Public Property fdirProv() As String
Get
Return Me.dirProv
End Get
Set(ByVal value As String)
Me.dirProv = value
End Set
End Property
Public Sub RegistrarProveedor()
Try
conn.Open()
cmd = New SqlCommand("SP_INSERTAPROV", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pidprov", idProv)
cmd.Parameters.AddWithValue("@pnombprov", nombProv)
cmd.Parameters.AddWithValue("@pdirprov", dirProv)
cmd.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception(ex.Message) ---mensaje de error.
Finally
conn.Close()
End Try
End Sub
Public Sub ActualizarProveedor()
Try

ING. FRANCISCO RODRIGUEZ N.

Pg 9

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

conn.Open()
cmd = New SqlCommand("SP_ACTUALIZAPROV", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pidprov", idProv)
cmd.Parameters.AddWithValue("@pnombprov", nombProv)
cmd.Parameters.AddWithValue("@pdirprov", dirProv)
cmd.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
conn.Close()
End Try
End Sub
Public Function EliminarProveedor() As Integer
Dim c As Integer
Try
conn.Open()
cmd = New SqlCommand("SP_ELIMINAPROV", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pidprov", idProv) BASTA CON EL CODIGO
c = cmd.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
conn.Close()
End Try
Return c
End Function
Public Sub BuscarProveedorxId()
Try
Dim dr As SqlDataReader
conn.Open()
cmd = New SqlCommand("SP_BUSCAPROV", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pidprov", idProv)
dr = cmd.ExecuteReader()
If Not dr.HasRows Then
Throw New Exception("Proveedor no encontrado")
End If
While dr.Read
idProv = dr(0)
nombProv = dr(1)
dirProv = dr(2)
End While
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
conn.Close()
End Try
End Sub

ING. FRANCISCO RODRIGUEZ N.

Pg 10

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Public Function ListarProveedores() As DataTable


Try
Dim ds As DataSet
Dim da As SqlDataAdapter
conn.Open()
cmd = New SqlCommand("SP_LISTAPROV", conn)
cmd.CommandType = CommandType.StoredProcedure
ds = New DataSet
da = New SqlDataAdapter(cmd)
da.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
conn.Close()
End Try
End Function
End Class

Paso 12: Ubicarse en el formulario Proveedor. Alli dar doble click Codificar los mtodos e
incluirlos en el form1 (formulario de empleado)

ING. FRANCISCO RODRIGUEZ N.

Pg 11

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Private Sub FormProveedor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load
FillGrid()
End Sub
Private Sub FillGrid()
Try
Dim objProveedor As New Proveedor
With objProveedor
DGVProveedor.DataSource = .ListarProveedores
End With
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub
Private Sub LimpiarForm()
txtcodigo.Text = ""
txtnombres.Text = ""
txtdireccion.Text = ""
txtcodigo.Focus()
End Sub
Paso 13: En el formulario Proveedor dar doble clik en los objetos button y codificar.

Private Sub BtnRegistrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles BtnRegistrar.Click
Try
Dim objProveedor As New Proveedor
With objProveedor
.fidProv = txtcodigo.Text
.fnombProv = txtnombres.Text
.fdirProv = txtdireccion.Text
.RegistrarProveedor()
End With

ING. FRANCISCO RODRIGUEZ N.

Pg 12

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

MsgBox("Porveedor Registrado !!!!")


LimpiarForm() 'Invocar al mtodo limpiar formulario
FillGrid() 'Llenar el Grid
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub
Private Sub BtnActualizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnActualizar.Click
Try
Dim objProveedor As New Proveedor
With objProveedor
.fidProv = txtcodigo.Text
.fnombProv = txtnombres.Text
.fdirProv = txtdireccion.Text
.ActualizarProveedor()
End With
MsgBox("Datos Actualizados !!!!")
LimpiarForm()
FillGrid()
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub
Private Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles BtnEliminar.Click
Try
Dim objProveedor As New Proveedor
With objProveedor
.fidProv = txtcodigo.Text
.EliminarProveedor()
End With
MsgBox("Datos Eliminados !!!!")
LimpiarForm()
FillGrid()
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub
Private Sub BtnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles BtnLimpiar.Click
txtcodigo.Text = ""
txtnombres.Text = ""
txtdireccion.Text = ""
txtcodigo.Focus()
End Sub

ING. FRANCISCO RODRIGUEZ N.

Pg 13

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Private Sub BtnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles BtnBuscar.Click
Try
Dim objProveedor As New Proveedor
With objProveedor
.fidProv = txtcodigo.Text
.BuscarProveedorxId()
txtnombres.Text = .fnombProv
txtdireccion.Text = .fdirProv
End With
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub

Paso 14: Ejecutar la aplicacin (icono iniciar depuracin)

Ejercicios Propuestos
1.

Implementar en la misma aplicacin el formulario de mantenimiento de la tabla ITEM.


(procedimientos almacenados, clase y formulario)

2. Implementar en la misma aplicacin el formulario de mantenimiento de la tabla AREA.


(procedimientos almacenados, clase y formulario)

ING. FRANCISCO RODRIGUEZ N.

Pg 14

You might also like