Upload
trinhdien
View
217
Download
2
Embed Size (px)
Citation preview
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 1
GUIA PRACTICA 1 – VISUAL C#.Net 2010 + SQL SERVER 2012
MANTENIMIENTO DE UNA TABLA
1. Elaborar una aplicación windows en Visual C#.Net 2010 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.
Paso 2: Migrar el modelo anterior al gestor de base de datos SQLServer 2012.
FACTURA
nro_factura
descripcion
total_bienes
valor_total
ENTRADA_ALMACEN
nro_entrada
nro_factura (FK)
fecha
id_proveedor (FK)
SALIDA_ALMACEN
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
INVENTARIO
cod_unico
responsable
fecha
stock
id_item (FK)
DETALLE_ITEM
id_item (FK)
nro_salida (FK)
cantidad
PROVEEDOR
id_proveedor
nombre_prov
direc_prov
DETALLE_FACTURA
nro_factura (FK)
id_item (FK)
cantidad
DETALLE_ENTRADA
nro_entrada (FK)
nro_factura (FK)
id_item (FK)
cantidad
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 2
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
AREASid_area
nombre_area
descripcion
DETALLE_ENTRADAnro_entrada
nro_factura
id_item
cantidad
DETALLE_FACTURAnro_factura
id_item
cantidad
DETALLE_ITEMid_item
nro_salida
cantidad
ENTRADA_ALMACENnro_entrada
fecha
nro_factura
id_proveedor
FACTURAnro_factura
descripcion
total_bienes
valor_total
INVENTARIOcod_unico
responsable
fecha
stock
id_item
ITEMid_item
nombre
PROVEEDORid_proveedor
nombre_prov
direc_prov
SALIDA_ALMACENnro_salida
empleado_responsable
fecha_salida
fecha_entrega
id_area
nro_entrada
nro_factura
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 3
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
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 4
Paso 5: En el Menú Contextual indicar Archivo – Nuevo Proyecto – Aplicación de Windows Form
– Aceptar
Para dar nombre y ubicación al proyecto. Indicar Archivo – Guardar todo. Indicar el nombre y
ubicación del proyecto. Luego indicar Guardar.
Paso 6: En el primer formulario (Form1) cambia la propiedad text a MENU y la propiedad name a
FormMenu.
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 5
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)
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 6
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.
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 7
Paso 9: En el FormProveedor incorporar los controles (objetos) que se indican
OBJETO ATRIBUTO VALOR
Label1 Text CODIGO
Label2 Text NOMBRES
Label3 Text DIRECCION
GroupBox1 Text Datos Personales
GroupBox2 Text Operaciones
TextBox1 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 opción Proveedor dar doble click y escribir el siguiente código (para el
llamado de los formularios desde el Menu Principal).
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 8
Paso 11: En el explorador de soluciones (superior derecha) Marcar ProyectoAlmacen – click
derecho – Agregar – Clase. Implementar la clase Proveedor con sus correspondientes atributos y
métodos.
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 9
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Data; namespace WindowsFormsApplication1 { class Proveedor { private string idProv, nombProv, dirProv; private SqlCommand cmd; private String strConn = "SERVER=localhost;DATABASE=StoreDB;Integrated Security=SSPI;"; private SqlConnection conn; public Proveedor() { conn = new SqlConnection(strConn); } public Proveedor(string tid, string tnombre, string tdir) { this.idProv = tid; this.nombProv = tnombre; this.dirProv = tdir; conn = new SqlConnection(strConn); } public string fidProv { set { idProv = value; } get { return idProv; } } public string fnombProv {
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 10
set { nombProv = value; } get { return nombProv; } } public string fdirProv { set { dirProv = value; } get { return dirProv; } } public void 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 (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } public void 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(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } int EliminarProveedor() { int c; try {
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 11
conn.Open(); cmd = new SqlCommand("SP_ELIMINAPROV", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@pidprov", idProv); c = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } return c; } public DataTable ListarProveedores() { try { DataSet ds; SqlDataAdapter da; 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 (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } } }
Paso 12: Ubicarse en el formulario Proveedor. Alli dar doble click Codificar los métodos e
incluirlos en el form1 (formulario de empleado)
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 12
private void FormProveedor_Load(object sender, EventArgs e) { FillGrid(); } private void FillGrid() { try { Proveedor objProveedor = new Proveedor(); dGVProveedor.DataSource = objProveedor.ListarProveedores(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Mensaje"); }
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 13
} private void LimpiarForm() { txtID.Text = ""; txtNames.Text = ""; txtAdress.Text = ""; txtID.Focus(); }
Paso 13: En el formulario Proveedor dar doble clik en los objetos button y codificar.
private void btnRegistrar_Click(object sender, EventArgs e) { try { Proveedor objProveedor = new Proveedor(); objProveedor.fidProv = txtID.Text; objProveedor.fnombProv = txtNames.Text; objProveedor.fdirProv = txtAdress.Text; objProveedor.RegistrarProveedor(); MessageBox.Show("Proveedor Registrado !!!!"); LimpiarForm(); //Invocar al método limpiar formulario FillGrid(); //'Llenar el Grid } catch (Exception ex) { MessageBox.Show(ex.Message, "Mensaje"); } } private void btnActualizar_Click(object sender, EventArgs e) { try
INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE
Prof. Jorge M. Sucari Pág 14
{ Proveedor objProveedor = new Proveedor(); objProveedor.fidProv = txtID.Text; objProveedor.fnombProv = txtNames.Text; objProveedor.fdirProv = txtAdress.Text; objProveedor.ActualizarProveedor(); MessageBox.Show("Datos actualizados !!!!"); LimpiarForm(); //Invocar al método limpiar formulario FillGrid(); //'Llenar el Grid } catch (Exception ex) { MessageBox.Show(ex.Message, "Mensaje"); } }
Paso 14: Ejecutar la aplicación (icono iniciar depuración)
Ejercicios Propuestos
1. Implementar el método y procedimiento almacenado de la funcionalidad Eliminar
Proveedor.
2. Implementar un método de búsqueda de proveedor por ID (código) agregando el
control (botón) respectivo en el formulario.
3. Implementar en la misma aplicación el formulario de mantenimiento de la tabla ITEM.
4. Implementar en la misma aplicación el formulario de mantenimiento de la tabla AREA.