Você está na página 1de 15

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 los el FormProveedor incorporar 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 (IMPORTA TODAS LAS CLASES DEL PAQUETE System.Data.SqlClien)


Public Class Proveedor

(DEFINIR A LA CLASE PROVEEDOR)

Private idProv, nombProv, dirProv As String


Private conn As SqlConnection PROCESO 1: CONECTAR CON LA BASE DE DATOS (CON SQL) SE DEFINE
UN OBJETO
Private cmd As SqlCommand
PROCESO2: RECIBO OTRO OBJETO PARA HACER LA
ACCION DE COMANDO
Private strConn As String = "SERVER=localhost;DATABASE=BDALMACEN;Integrated
Security=SSPI;" SERVIDOR Y EL NOMBRE DE LA BASE DE DATOS

ING. FRANCISCO RODRIGUEZ N.

Pg 8

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

CONSTRUCTOR

Sub New()
R
conn = New SqlConnection(strConn) AL OBJETO CONEXION DEBO ASOCIARLO A LA
CADENA(strConn)
End Sub

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
EL CONSTRUCTOR RECIBE 3 VALORES Y LOS ASIGNA A LOS ATRIBUTOS DE LA CLASE
ME: OJETO ACTIVO
Public Property fidProv() As String
Get
Return Me.idProv
End Get
Set(ByVal value As String)
Me.idProv = value
End Set
End Property
PROPERTY AGREGA LA LETRA F Y TIENE DOBLE FUNCIONALIDAD, PORQUE RETORNA EL
VALOR DEL ATRIBUTO DE LA CLASE (RETURN)
VALUE:, RETORNA UN VALOR DEL ATRIBUTO LA CLASE Y RECIBE UN VALOR Y
ASIGNARLO AL ATRIBUTO DE LA CLASE
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

ING. FRANCISCO RODRIGUEZ N.

Pg 9

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

________________________________________________________________________________
Public Sub RegistrarProveedor()
Try
conn.Open()
cmd = New SqlCommand("SP_INSERTAPROV", conn)
EXCEPCION
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() (cerrar conexion)
End Try
End Sub
____________________________________________________________________________________
EXCEPCION :::CONTROLA ERRORES Y SI NO ENCUENTRA LA BASE DE DATOS SALE
ERROR (BASE DE DATOS CON OTRO NOMBRE) Y SE ACTIVA CUANDO HAY UN ERROR
cmd SE ASOCIA A SP INSERTA PROVEEDOR
parametro del procedimiento almacenado con el atributo de la clase (@pnombprov", nombProv)
Public Sub ActualizarProveedor()
Try
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()
cmd asocial los atributos de clases con los parametros de los procedimietnos almacenados
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()
aperture la operacion
cmd = New SqlCommand("SP_ELIMINAPROV", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pidprov", idProv) asocio solo el codigo
c = cmd.ExecuteNonQuery()
Catch ex As Exception

ING. FRANCISCO RODRIGUEZ N.

Pg 10

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Throw New Exception(ex.Message) PARA MENSAJE DE ERROR :Throw New


Finally
conn.Close()
End Try
Return c
End Function
Public Sub BuscarProveedorxId()
Try
Dim dr As SqlDataReader ESPECIE DE MATRIZ DE MEMORIA DONDE GUARDAtodo el
resultado de un select PARA HACER UNA BUSQUEDA (dr)
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) lo guarda en el atributo de la clase dr(0) dr(1) dr(2)
nombProv = dr(1)
dirProv = dr(2)
End While
Catch ex As Exception
Throw New Exception(ex.Message) para mensaje de error
Finally
conn.Close() para cerrar la conexion
End Try
End Sub
No hago asocion porque no requiero atributos porque solo quiero listar
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() asigna al data grid proveedor
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

ING. FRANCISCO RODRIGUEZ N.

Pg 12

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

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 formulario envia a la clase (DIM) PROPERTY 2DA
ACCION
With objProveedor
.fidProv = txtcodigo.Text
.fnombProv = txtnombres.Text
.fdirProv = txtdireccion.Text
.RegistrarProveedor()
End With
MsgBox("Porveedor Registrado !!!!")
LimpiarForm() 'Invocar al mtodo limpiar formulario
FillGrid() 'Llenar el Grid ACTUALIZA DATOS DENTRO DEL DATA GRID (FILLGRID)
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()

ING. FRANCISCO RODRIGUEZ N.

Pg 13

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

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 BtnActualizar.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 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
Private Sub BtnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles BtnLimpiar.Click
LimpiarForm()
End Sub

Paso 14: Ejecutar la aplicacin (icono iniciar depuracin)

ING. FRANCISCO RODRIGUEZ N.

Pg 14

INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

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 15

Você também pode gostar