14
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

M GUIA PRACTICA 1 VISUAL C#.Net 2010 + SQL … PRACTICA 1 – VISUAL C#.Net 2010 + SQL SERVER 2012 MANTENIMIENTO DE UNA TABLA 1. Elaborar una aplicación windows en Visual C#.Net 2010

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.