Sei sulla pagina 1di 14

INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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.

PROVEEDOR
id_proveedor
ENTRADA_ALMACEN
nombre_prov
nro_entrada
direc_prov
nro_factura (FK)
FACTURA
fecha
nro_factura id_proveedor (FK)
descripcion
total_bienes AREAS
valor_total id_area
nombre_area
DETALLE_ENTRADA
descripcion
nro_entrada (FK)
nro_factura (FK)
id_item (FK)
DETALLE_FACTURA cantidad SALIDA_ALMACEN
nro_factura (FK)
nro_salida
id_item (FK)
ITEM
empleado_responsable
cantidad id_item fecha_salida
fecha_entrega
nombre
id_area (FK)
nro_entrada (FK)
nro_factura (FK)
DETALLE_ITEM
INVENTARIO
id_item (FK)
cod_unico
nro_salida (FK)
responsable
cantidad
fecha
stock
id_item (FK)

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

Prof. Jorge M. Sucari Pág 1


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

DETALLE_ENTRADA
nro_entrada
nro_factura
FACTURA
id_item
nro_factura
cantidad
descripcion
total_bienes
valor_total

ITEM
id_item
ENTRADA_ALMACEN nombre
nro_entrada
fecha
DETALLE_FACTURA
nro_factura
nro_factura
id_proveedor
id_item
cantidad

SALIDA_ALMACEN
nro_salida
empleado_responsable
fecha_salida
fecha_entrega INVENTARIO
id_area cod_unico
nro_entrada responsable
DETALLE_ITEM
nro_factura id_item fecha

nro_salida stock
PROVEEDOR id_item
cantidad
id_proveedor
nombre_prov 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

Prof. Jorge M. Sucari Pág 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

Prof. Jorge M. Sucari Pág 3


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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.

Prof. Jorge M. Sucari Pág 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)

Prof. Jorge M. Sucari Pág 5


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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.

Prof. Jorge M. Sucari Pág 6


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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

Prof. Jorge M. Sucari Pág 7


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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.

Prof. Jorge M. Sucari Pág 8


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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
{

Prof. Jorge M. Sucari Pág 9


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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
{

Prof. Jorge M. Sucari Pág 10


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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)

Prof. Jorge M. Sucari Pág 11


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

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");
}

Prof. Jorge M. Sucari Pág 12


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

}
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

Prof. Jorge M. Sucari Pág 13


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

{
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.

Prof. Jorge M. Sucari Pág 14

Potrebbero piacerti anche