GUIA PRACTICA 1 – VISUAL BASIC 2012 + SQL SERVER

18
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE GUIA PRACTICA 1 – VISUAL BASIC 2012 + SQL SERVER MANTENIMIENTO DE UNA TABLA 1. Elaborar una aplicación 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. Solución Paso 1 : Elaborar el Modelo Entidad Interrelación de la base de datos BDALMACEN. FACTURA nro_factura descripcion total_bienes valor_total E N T R A D A _A LM A C E N nro_entrada nro_factura (FK) fecha id_proveedor(FK) S A LID A _A LM ACEN nro_salida empleado_responsable fecha_salida fecha_entrega id_area (FK) nro_entrada (FK) nro_factura (FK) AREAS id_area nombre_area descripcion ITEM id_item nombre IN VENTAR IO cod_unico responsable fecha stock id_item (FK) D ETALLE_ITEM id_item (FK) nro_salida (FK) cantidad PROVEEDOR id_proveedor nombre_prov direc_prov D E T A LLE _FA C T U R A nro_factura (FK) id_item (FK) cantidad D E T A LLE _E N T R A D A nro_entrada (FK) nro_factura (FK) id_item (FK) cantidad ING. FRANCISCO RODRIGUEZ N. Pág 1

description

MANTENIMIENTO DE UNA TABLA

Transcript of GUIA PRACTICA 1 – VISUAL BASIC 2012 + SQL SERVER

PRACTICA 1

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.

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

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

a). sp_insertaProvb). sp_ListaProvc). sp_BuscaProv

d). sp_ActualizaProve). sp_EliminaProvCREATE 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

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=@PIDPROVEND

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.

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

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.

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

OBJETO

ATRIBUTO

VALOR

Label1

Text

CODIGO

Label2

Text

NOMBRESLabel3

Text

DIRECCION

GroupBox1

Text

Datos Personales

GroupBox2

Text

OperacionesTextBox1

Name

txtcodigo

Text

TextBox2

Name

txtnombres

Text

TextBox3

Name

txtdireccion

Text

DataGridView

Name

DGVProveedor

Button1

Text

Registrar

Name

BtnRegistrar

Button2

Text

Actualizar

Name

BtnActualizar

Button3

Text

Eliminar

Name

BtnEliminar

Button4

Text

Buscar

Name

BtnBuscar

Button5

Text

Limpiar

Name

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.

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 Sub New() 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 SubEL CONSTRUCTOR RECIBE 3 VALORES Y LOS ASIGNA A LOS ATRIBUTOS DE LA CLASEME: OJETO ACTIVO

Public Property fidProv() As String Get Return Me.idProv

End Get Set(ByVal value As String)

Me.idProv = value

End Set End PropertyPROPERTY 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________________________________________________________________________________ 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)

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 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 FunctionEnd ClassPaso 12: Ubicarse en el formulario Proveedor. Alli dar doble click Codificar los mtodos e incluirlos en el form1 (formulario de empleado)

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

FillGrid() asigna al data grid proveedorEnd 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 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()

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 SubPrivate 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)

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)

CONSTRUCTORR

EXCEPCION

PAGE

15ING. FRANCISCO RODRIGUEZ N. Pg