GUIA PRACTICA 1 – VISUAL BASIC 2012 + SQL SERVER
description
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