You are on page 1of 23

E.A.P.

de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
1

Practica: 05
Sistema de caso real de una Boutique
Objetivos:
Crear la base de datos Boutique en SQLSERVER
Crear tablas: Empleado, puesto, login, cliente, factura, venta, articulo, atributo, pedido, categora,
departamento, artculos categora, historial y caja.
Herramientas:
Microsoft SQLSERVER 2008 o superior
Visual Studio 2008 o superior.
Desarrollo
Crear una Base de Datos llamado Boutique



E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
2







CREATE DATABASE BOUTIQUE
USE BOUTIQUE

CREATE TABLE EMPLEADO(
EMPLEADOID INT IDENTITY(1,1) NOT NULL,
NOMBRE NVARCHAR(100) NOT NULL,
APELLIDOS NVARCHAR(200) NOT NULL,
DIRECCCION NVARCHAR(100) NOT NULL,
CIUDAD NVARCHAR(100) NOT NULL,
ESTADO NVARCHAR(100) NOT NULL,
TELEFONO BIGINT NULL,
MOVIL BIGINT NULL,
FAX BIGINT NULL,
PUESTOID NVARCHAR(200) NOT NULL,
);

ALTER TABLE EMPLEADO ADD CONSTRAINT PK_EMPLEADO PRIMARY KEY CLUSTERED (EMPLEADOID)


CREATE TABLE PUESTO (
PUESTOID NVARCHAR(200) NOT NULL,
DESCRIPCION NVARCHAR(MAX) NOT NULL,
);


ALTER TABLE PUESTO ADD CONSTRAINT PK_PUESTO PRIMARY KEY CLUSTERED(PUESTOID)
ALTER TABLE EMPLEADO ADD CONSTRAINT FK_EMPLEADO_PUESTO FOREIGN KEY(PUESTOID) REFERENCES
PUESTO(PUESTOID)


CREATE TABLE PROVEEDOR(
PROVEEDORID INT IDENTITY(1,1) NOT NULL,
COMPAIA NVARCHAR(100) NOT NULL,
NOMBRE NVARCHAR(100) NULL,
APELLIDOS NVARCHAR(200) NULL,
DIRECCION NVARCHAR (200) NOT NULL,
CIUDAD NVARCHAR(100) NOT NULL,
ESTADO NVARCHAR(100) NOT NULL,
TELEFONO BIGINT NULL,
MOVIL BIGINT NULL,
FAX BIGINT NULL,
CP INT NULL,
);

ALTER TABLE PROVEEDOR ADD CONSTRAINT PK_PROVEEDOR PRIMARY KEY CLUSTERED (PROVEEDORID)
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
3



CREATE TABLE CLIENTE(
CLIENTEID INT IDENTITY(1,1) NOT NULL,
NOMBRE NVARCHAR(100),
APELLIDOS NVARCHAR(200),
DIRECCION NVARCHAR(200),
CIUDAD NVARCHAR(100),
ESTADO NVARCHAR(100),
CP INT,
TELEFONO BIGINT ,
MOVIL BIGINT,
FAX BIGINT,
);

ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE PRIMARY KEY CLUSTERED (CLIENTEID)


CREATE TABLE DEPARTAMENTO(
DEPARTAMENTOID NVARCHAR(100) NOT NULL,
DESCRIPCION NVARCHAR(MAX) NOT NULL
);


ALTER TABLE DEPARTAMENTO ADD CONSTRAINT PK_DEPARTAMENTO PRIMARY KEY(DEPARTAMENTOID)

CREATE TABLE CATEGORIA(
CATEGORIAID INT IDENTITY(1,1) NOT NULL,
NOMBRE NVARCHAR(100),
DESCRIPCION NVARCHAR(100),
DEPARTAMENTOID NVARCHAR(100) NOT NULL
);

ALTER TABLE CATEGORIA ADD CONSTRAINT PK_CATEGORIA PRIMARY KEY CLUSTERED (CATEGORIAID)
ALTER TABLE CATEGORIA ADD CONSTRAINT FK_CATEGORIA_DEPARTAMENTO FOREIGN KEY (DEPARTAMENTOID)
REFERENCES DEPARTAMENTO(DEPARTAMENTOID)


CREATE TABLE ARTICULO (
ARTICULOID BIGINT NOT NULL,
NOMBRE NVARCHAR(100) NOT NULL,
PRECIONETO MONEY NOT NULL DEFAULT 0.0,
PRECIOPUBLICO MONEY DEFAULT 0.0,
DESCONTINUADO BIT,
STOCK INT,
PROVEEDORID INT NOT NULL,
IMAGEN NVARCHAR(MAX) NULL
);

ALTER TABLE ARTICULO ADD CONSTRAINT PK_ARTICULO PRIMARY KEY CLUSTERED (ARTICULOID)
ALTER TABLE ARTICULO ADD CONSTRAINT FK_ARTICULO_PROVEEDOR FOREIGN KEY (PROVEEDORID) REFERENCES
PROVEEDOR(PROVEEDORID)


CREATE TABLE ATRIBUTO(
ATRIBUTOID INT IDENTITY(1,1) NOT NULL,
ARTICULOID BIGINT NOT NULL,
TIPO NVARCHAR(100),
TALLA INT,
TEMPORADA NVARCHAR(100),
COLOR NVARCHAR(100)
);


ALTER TABLE ATRIBUTO ADD CONSTRAINT PK_ATRIBUTO PRIMARY KEY(ATRIBUTOID)
ALTER TABLE ATRIBUTO ADD CONSTRAINT FK_ATRIBUTO_ARTICULO FOREIGN KEY(ARTICULOID) REFERENCES
ARTICULO(ARTICULOID)


CREATE TABLE ARTICULOSCATEGORIA(
ARTICULOID BIGINT NOT NULL,
CATEGORIAID INT NOT NULL
);

ALTER TABLE ARTICULOSCATEGORIA ADD CONSTRAINT PK_ARTICULOSCATEGORIA PRIMARY KEY (ARTICULOID)
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
4

ALTER TABLE ARTICULOSCATEGORIA ADD CONSTRAINT FK_ARTICULOSCATEGORIA_CATEGORIA FOREIGN
KEY(CATEGORIAID) REFERENCES CATEGORIA (CATEGORIAID)
ALTER TABLE ARTICULOSCATEGORIA ADD CONSTRAINT FK_ARTICULOSCATEGORIA_ARTICULO FOREIGN KEY(ARTICULOID)
REFERENCES ARTICULO(ARTICULOID)


CREATE TABLE PEDIDO (
PEDIDOID INT IDENTITY (1,1)NOT NULL,
ARTICULOID BIGINT NOT NULL,
PRECIOCOMPRA MONEY NOT NULL,
CANTIDAD INT NOT NULL,
);
ALTER TABLE PEDIDO ALTER COLUMN CANTIDAD INT NOT NULL
ALTER TABLE PEDIDO ADD CONSTRAINT PK_PEDIDO PRIMARY KEY CLUSTERED (PEDIDOID)
ALTER TABLE PEDIDO ADD CONSTRAINT FK_PEDIDO_ARTICULO FOREIGN KEY (ARTICULOID) REFERENCES
ARTICULO(ARTICULOID) ON UPDATE CASCADE
CREATE TABLE VENTA (
VENTAID INT IDENTITY (1,1) NOT NULL,
EMPLEADOID INT NOT NULL,
CLIENTEID INT NOT NULL,
PEDIDOID INT NOT NULL,
FECHA DATETIME NOT NULL,
MONTOTOTAL MONEY NOT NULL,
TIPOPAGO NVARCHAR(100) NOT NULL
);
ALTER TABLE VENTA ADD CONSTRAINT PK_VENTA PRIMARY KEY CLUSTERED (VENTAID)
ALTER TABLE VENTA ADD CONSTRAINT FK_VENTA_EMPLEADO FOREIGN KEY(EMPLEADOID) REFERENCES
EMPLEADO(EMPLEADOID) ON UPDATE CASCADE
ALTER TABLE VENTA ADD CONSTRAINT FK_VENTA_CLIENTE FOREIGN KEY(CLIENTEID) REFERENCES
CLIENTE(CLIENTEID) ON UPDATE CASCADE
ALTER TABLE VENTA ADD CONSTRAINT FK_VENTA_PEDIDO FOREIGN KEY(PEDIDOID) REFERENCES PEDIDO(PEDIDOID)
ON UPDATE CASCADE
CREATE TABLE FACTURA
(
FACTURAID INT IDENTITY(1,1) NOT NULL,
VENTAID INT NOT NULL,
RFC NVARCHAR(MAX) NOT NULL
);
ALTER TABLE FACTURA ADD CONSTRAINT PK_FACTURA PRIMARY KEY CLUSTERED (FACTURAID)
ALTER TABLE FACTURA ADD CONSTRAINT FK_FACTURA_VENTA FOREIGN KEY (VENTAID) REFERENCES VENTA(VENTAID)
ON UPDATE CASCADE
CREATE TABLE LOGIN
(
NOMBREUSUARIO NVARCHAR(100) NOT NULL,
PASSWORD NVARCHAR(8)NOT NULL,
EMPLEADOID INT NOT NULL
);
ALTER TABLE LOGIN ADD CONSTRAINT PK_LOGIN PRIMARY KEY(NOMBREUSUARIO)
ALTER TABLE LOGIN ADD CONSTRAINT FK_LOGIN FOREIGN KEY(EMPLEADOID) REFERENCES EMPLEADO(EMPLEADOID)
CREATE TABLE CAJA
(
CAJAID INT NOT NULL,
CAJAINICIAL MONEY NOT NULL DEFAULT 0.0,
CAJAACTUAL MONEY NOT NULL DEFAULT 0.0
);
ALTER TABLE CAJA ADD CONSTRAINT PK_CAJA PRIMARY KEY(CAJAID)
CREATE TABLE HISTORIAL
(
HISTORIALID INT IDENTITY(1,1) NOT NULL,
CAJAID INT NOT NULL,
INGRESOS MONEY NOT NULL,
EGRESOS MONEY NOT NULL,
FECHA DATETIME NOT NULL
);
ALTER TABLE HISTORIAL ADD CONSTRAINT PK_HISTORIAL PRIMARY KEY(HISTORIALID)
ALTER TABLE HISTORIAL ADD CONSTRAINT FK_HISTORIAL FOREIGN KEY(CAJAID) REFERENCES CAJA (CAJAID)

INSERT INTO DEPARTAMENTO VALUES('DAMA','ROPA PARA DAMA')
INSERT INTO DEPARTAMENTO VALUES('CABALLERO','ROPA PARA CABALLERO')
INSERT INTO DEPARTAMENTO VALUES('NIA','ROPA PARA NIAS')
INSERT INTO DEPARTAMENTO VALUES('NIO','ROPA PARA NIOS')

INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Blusas','Blusas','DAMA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Pantalones','Pantalones','DAMA')
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
5

INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Faldas','Faldas','DAMA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Camisas','Camisas','CABALLERO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Playeras','Playeras','CABALLERO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Pantalones de Vestir','Pantalones
de Vestir','CABALLERO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES
('Pantalones','Pantalones','CABALLERO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Shorts','Shorts','CABALLERO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Chamarras','Chamarras','DAMA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES
('Chamarras','Chamarras','CABALLERO')

INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Zapatos','Zapatos','DAMA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Zapatos','Zapatos','CABALLERO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Zapatos','Zapatos','NIO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Zapatos','Zapatos','NIA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Blusas','Blusas','NIA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Pantalones','Pantalones','NIA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Faldas','Faldas','NIA')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Camisas','Camisas','NIO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Playeras','Playeras','NIO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Pantalones de Vestir','Pantalones
de Vestir','NIO')

INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Pantalones','Pantalones','NIO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Shorts','Shorts','NIO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Chamarras','Chamarras','NIO')
INSERT INTO CATEGORIA (NOMBRE,DESCRIPCION,DEPARTAMENTOID) VALUES ('Chamarras','Chamarras','NIA')
INSERT INTO PUESTO VALUES('GERENTE','ENCARGADO DE CONTROLAR Y PLANEAR LAS ACTIVIDAES DE LA
BOUTIQUE')

INSERT INTO PUESTO VALUES('SUBGERENTE','PERSONA ENCARGADA DE APOYAR AL GERENTE CON LA
ADMINISTRACION')

INSERT INTO PUESTO VALUES('CAJERO','ENCARGADO DE SUMAR LAS CANTIDADES DEVIDAS DE UNA COMPRA')
INSERT INTO PUESTO VALUES('VENDEDOR','ENCARGADO DE VENDER LOS ARTICULOS DE LA BOUTIQUE')
INSERT INTO PUESTO VALUES('LIMPIEZA','ENCARGAO DE LA LIMPIEZA DE LA BOUTIQUE')

Insert into EMPLEADO values ('Melissa','McKenzie','PINO SUAREZ 18',
'MINATITLAN','VERACRUZ',123456789,123456789,123456789,'GERENTE')

Insert into EMPLEADO values ('William','Taylor','20 DE NOVIEMBRE',
'MINATITLAN','VERACRUZ',666666789,666666789,666666789,'SUBGERENTE')

Insert into EMPLEADO values ('Michael','Stone','LERDO #984',
'MINATITLAN','VERACRUZ',234678963,234678963,234678963,'CAJERO')

Insert into EMPLEADO values ('Nolan','Brenda','GALEANA #254',
'MINATITLAN','VERACRUZ',785342987,785342987,785342987,'CAJERO')

Insert into EMPLEADO values ('Helen','Branch','MALPICA #366',
'COATZACOLCOS','VERACRUZ',11234987,11234987,11234987,'CAJERO')

Insert into EMPLEADO values ('Sarah','Beck','HIDALGO #23',
'MINATITLAN','VERACRUZ',887534567,887534567,887534567,'CAJERO')

Insert into EMPLEADO values ('Barbara','Olson','ROMAN MARIN #453',
'COATZACOLCOS','VERACRUZ',6667894321,6667894321,6667894321,'VENDEDOR')
Insert into EMPLEADO values ('Robert','Pollard','FORES MAGON',
'COATZACOLCOS','VERACRUZ',565434344,565434344,565434344,'VENDEDOR')
Insert into EMPLEADO values ('Thomas','Sexton ','CENTRO #222',
'COATZACOLCOS','VERACRUZ',563234562,563234562,563234562,'VENDEDOR')


Insert into EMPLEADO values ('Daniel','Wilcox','AQULES HERDAN',
'MINATITLAN','VERACRUZ',111112345,111112345,111112345,'VENDEDOR')

Insert into EMPLEADO values ('Thomas','Schmidt','TRANSISMICA',
'MINATITLAN','VERACRUZ',333334567,333334567,333334567,'VENDEDOR')

Insert into EMPLEADO values ('Bridges','Deborah','VENUSTIANO CARRANZA',
'MINATITLAN','VERACRUZ',222224567,222224567,222224567,'VENDEDOR')

E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
6

Insert into EMPLEADO values ('Sandra','Burton','5 DE MAYO #4',
'MINATITLAN','VERACRUZ',123456789,123456789,123456789,'VENDEDOR')

Insert into EMPLEADO values ('William','Cooper','AV. 10 DE MAYO',
'MINATITLAN','VERACRUZ',009987634,009987634,009987634,'LIMPIEZA')

Insert into EMPLEADO values ('Thomas','Spence','AV. UNIVERSIDAD',
'MINATITLAN','VERACRUZ',888882345,888882345,888882345,'LIMPIEZA')

Insert into EMPLEADO values ('Betty','Young','INDEPENDIENCIA',
'MINATITLAN','VERACRUZ',222345678,222345678,222345678,'LIMPIEZA')

Insert into EMPLEADO values ('Jane','Gilmore','1 DE MAYO',
'MINATITLAN','VERACRUZ',4444456789,4444456789,4444456789,'LIMPIEZA')

INSERT INTO CLIENTE VALUES ('Benito','Almudena','Calle Primera,
12','COATZACOALCOS','VERACRUZ',96540,987654321,987654321,987654321)

INSERT INTO CLIENTE VALUES ('Arturo','Lpez','Calle Segunda,
123','COATZACOALCOS','VERACRUZ',96540,23457859,23457859,23457859)

INSERT INTO CLIENTE VALUES ('Vanessa','Castrejn','Calle Tercera, 123
','COATZACOALCOS','VERACRUZ',96540,7778765433,7778765433,7778765433)

INSERT INTO CLIENTE VALUES ('Antonio','Saraiva','Calle Quinta,
123','COATZACOALCOS','VERACRUZ',96540,456787834,456787834,456787834)

INSERT INTO CLIENTE VALUES ('Francisco','Ramos','
BoisE','COATZACOALCOS','VERACRUZ',96540,2223456789,2223456789,2223456789)

INSERT INTO CLIENTE VALUES ('Yolanda','Junca','Salt Lake City
UT','COATZACOALCOS','VERACRUZ',96540,4444567890,4444567890,4444567890)

INSERT INTO CLIENTE VALUES ('Rene','Hurtado Begoa','Las Vegas
','COATZACOALCOS','VERACRUZ',96540,44567890,44567890,44567890)

INSERT INTO CLIENTE VALUES ('Gustavo','Lpez Garca','Calle Decimoprimera,
12','COATZACOALCOS','VERACRUZ',96540,565655443,565655443,565655443)

INSERT INTO CLIENTE VALUES ('Pedro','Chaves Ferreira','Calle Decimoquinta,
123','COATZACOALCOS','VERACRUZ',96540,67655443,67655338,67644338)

INSERT INTO CLIENTE VALUES ('ngel','De Camargo','alle Vigesimoprimera,
127','COATZACOALCOS','VERACRUZ',96540,111234567,111234567,111234567)

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('LEVIS','ARTURO','PEREZ HERNANDEZ', 'JUAN ESCUTIA 702',
'COATZACOALCOS','VERACRUZ','9212151044','9211406757','9212145678','96420');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('FLEXI','JUAN','RODRIGUEZ HERNANDEZ', 'ROMAN MARIN 303',
'COATZACOALCOS','VERACRUZ','9212152094','9211345678','9212154545','96574');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('OGGI JEANS','DANIEL','PEREZ MARTINEZ', 'JUAN ESCUTIA 702',
'COATZACOALCOS','VERACRUZ','9212151044','9211406757','9212145678','96420');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('GRAN EMYCO','JAVIER','AGUIRRE MARTINEZ', 'R. MALPICA 300',
'MINATITLAN','VERACRUZ','9222268089','9221576907','9222298345','96570');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('DOCKERS','ANDRES','RAMIREZ MARTINEZ', 'FLORES MAGON 100',
'MINATITLAN','VERACRUZ','9222270345','9221167095','9222223456','95556');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('SQUALO','LORENZO','AGUIRRE GARCIA', 'NICOLAS BRAVO 600',
'COATZACOALCOS','VERACRUZ','9212122930','9211205786','9212134576','96400');

E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
7

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('HUSH PUPIES','ADRIAN','ROMERO CORONA', 'A. LOPEZ MATEOS 500',
'MINATITLAN','VERACRUZ','9222253260','9221515596','9222258228','96600');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('NIKE','JORGE','ESQUEDA MARTINEZ', 'J. MARIA MORELOS',
'MINATITLAN','VERACRUZ','9222245721','9221358034','9222258321','95575');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('ADIDAS','RODRIGO','GARCIA MARQUEZ', 'CENTRO 320',
'COATZACOALCOS','VERACRUZ','9212134087','9211486439','9212158210','96577');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('HUGO BOSS','HUGO','ESTRADA RODRIGUEZ', 'RUIZ CORTINEZ 340',
'MINATITLAN','VERACRUZ','9222210549','9221401143','9222223948','95980');

INSERT INTO PROVEEDOR(COMPAIA, NOMBRE, APELLIDOS, DIRECCION, CIUDAD,
ESTADO, TELEFONO, MOVIL, FAX, CP)
VALUES('MELODY','BLANC','HERNANDEZ ORTEGA', 'PENSIONES 430',
'COATZACOALCOS','VERACRUZ','9222210554','9221401149','9222223950','96420');


INSERT INTO ARTICULO VALUES (0001,'Pantaln LEVIS',400.00,600.00,0,10,1,'img0001.jpg')
INSERT INTO ARTICULO VALUES (0002,'Pantaln LEVIS',400.00,600.00,0,10,1,'img002.jpg')
INSERT INTO ARTICULO VALUES (0003,'Blusa MELODY',400.00,600.00,0,10,11,'img003.jpg')
INSERT INTO ARTICULO VALUES (0004,'Blusa MELODY',400.00,600.00,0,9,11,'img004.jpg')

INSERT INTO ATRIBUTO VALUES (0001,'ENTUBADO',31,'INVIERNO','NEGRO')
INSERT INTO ATRIBUTO VALUES (0002,'ACAMPANADO',32,'INVIERNO','AZUL')
INSERT INTO ATRIBUTO VALUES (0003,'CORTE V',5,'VERANO','AMARILLO')
INSERT INTO ATRIBUTO VALUES (0004,'CUELLO TORTUGA',10,'OTOO','NEGRO')

INSERT INTO PEDIDO(ARTICULOID, PRECIOCOMPRA, CANTIDAD)VALUES (0001,'5000','10');
INSERT INTO PEDIDO(ARTICULOID, PRECIOCOMPRA, CANTIDAD)VALUES (0002,'6000','1500');
INSERT INTO PEDIDO(ARTICULOID, PRECIOCOMPRA, CANTIDAD)VALUES (0003,'4000','900');
INSERT INTO PEDIDO(ARTICULOID, PRECIOCOMPRA, CANTIDAD)VALUES (0004,'3000','800');

INSERT INTO VENTA VALUES(3,1,0001,'11-11-2009',1000,'EFECTIVO')
INSERT INTO VENTA VALUES(3,1,2,'11-11-2009',1340,'EFECTIVO')
INSERT INTO VENTA VALUES(3,1,3,'9-9-9',3450,'TARJETA')
INSERT INTO VENTA VALUES(3,1,4,'11-12-2009',780,'TARJETA')

INSERT INTO FACTURA VALUES (1,'RTYP832235')
INSERT INTO FACTURA VALUES (2,'TYYTP832235')



E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
8

Practica: 06
Crear el Sistema en 3 capas

Paso 1: Crear un proyecto de tipo Class Library (Librera de Clases) llamado Datos.


Paso 2: Cree una clase llamada Configuracin.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Datos
{
public class Configuracion
{
static private string cadenaConexion = @"Data
Source=.\MSPDEVELOPER;Initial Catalog=BOUTIQUE;User
ID=sa;Password=mredison";
public static string CadenaConexion
{
get { return Configuracion.cadenaConexion; }
}
}
}
Paso 3: Cree una clase llamada MetodosDatos el cual ser reutilizable para toda la aplicacin.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
9


namespace Datos
{
public class MetodosDatos
{
public static SqlCommand CrearComando()
{
SqlConnection _conexion = new SqlConnection();
_conexion.ConnectionString = Configuracion.CadenaConexion;
SqlCommand _comando = new SqlCommand();
_comando = _conexion.CreateCommand();
_comando.CommandType = CommandType.Text;
return _comando;
}
public static DataTable EjectuarComandoSelect(SqlCommand comando)
{
DataTable _tabla = new DataTable();
try
{
comando.Connection.Open();
SqlDataAdapter _adaptador = new SqlDataAdapter();
_adaptador.SelectCommand = comando;
_adaptador.Fill(_tabla);
}
catch (Exception ex)
{ throw ex; }
finally
{ comando.Connection.Close(); }
return _tabla;
}
public static void EjecutarSinConsulta(SqlCommand comando)
{
try
{
comando.Connection.Open();
comando.ExecuteNonQuery();
}
catch (Exception ex)
{ throw ex; }
finally
{ comando.Connection.Close(); }
}
}
}

Paso 4: Cree una clase llamada AccesoDatos.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace Datos
{
public class AccesoDatos
{
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
10

public static DataTable ObtenerEmpleados()
{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText="SELECT * FROM EMPLEADO";
return MetodosDatos.EjectuarComandoSelect(_comando);
}
public static void AgregarEmpleado(string nombre,string apellidos,
string direccion, string ciudad, string estado,long telefono,
long celular,long fax,string puestoID)
{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText = "INSERT INTO EMPLEADO VALUES
(@Nombre,@Apellidos,@Direccion,@Ciudad,@Estado,@Telefono,@Movil,@Fax,@PuestoID)";

SqlParameter _parametro = new SqlParameter();
_parametro.ParameterName="@Nombre";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=nombre;
_parametro.Size=100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@Apellidos";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=apellidos;
_parametro.Size=200;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@Direccion";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=direccion;
_parametro.Size=100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@Ciudad";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=ciudad;
_parametro.Size=100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);





E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
11

_parametro = new SqlParameter();
_parametro.ParameterName="@Estado";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=estado;
_parametro.Size=100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@Telefono";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=telefono;
_parametro.SqlDbType = SqlDbType.BigInt;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@Movil";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=celular;
_parametro.SqlDbType = SqlDbType.BigInt;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@Fax";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=fax;
_parametro.SqlDbType = SqlDbType.BigInt;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName="@PuestoID";
_parametro.Direction=ParameterDirection.Input;
_parametro.Value=puestoID;
_parametro.Size=200;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

MetodosDatos.EjecutarSinConsulta(_comando);
}

public static void ActualizarEmpleado(string empleadoID, string nombre, string apellidos,
string direccion, string ciudad, string estado, long telefono,
long celular, long fax, string puestoID)



{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText = "UPDATE EMPLEADO SET
Nombre=@Nombre,Apellidos=@Apellidos,Direcccion=@Direccion,Ciudad=@Ciudad,Estado=@Esta
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
12

do,Telefono=@Telefono,Movil=@Movil,Fax=@Fax,PuestoID=@PuestoID WHERE
EmpleadoID=@EmpleadoID";

SqlParameter _parametro = new SqlParameter();
_parametro.ParameterName = "@EmpleadoID";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = empleadoID;
_parametro.SqlDbType = SqlDbType.Int;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Nombre";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = nombre;
_parametro.Size = 100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Apellidos";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = apellidos;
_parametro.Size = 200;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Direccion";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = direccion;
_parametro.Size = 100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Ciudad";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = ciudad;
_parametro.Size = 100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Estado";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = estado;
_parametro.Size = 100;
_parametro.SqlDbType = SqlDbType.NVarChar;
_comando.Parameters.Add(_parametro);

E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
13

_parametro = new SqlParameter();
_parametro.ParameterName = "@Telefono";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = telefono;
_parametro.SqlDbType = SqlDbType.BigInt;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Movil";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = celular;
_parametro.SqlDbType = SqlDbType.BigInt;
_comando.Parameters.Add(_parametro);

_parametro = new SqlParameter();
_parametro.ParameterName = "@Fax";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = fax;
_parametro.SqlDbType = SqlDbType.BigInt;
_comando.Parameters.Add(_parametro);

MetodosDatos.EjecutarSinConsulta(_comando);
}
public static void EliminarEmpleado(string empleadoID)
{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText = "DELETE EMPLEADO WHERE EmpleadoID=@EmpleadoID";
SqlParameter _parametro = new SqlParameter();
_parametro.ParameterName = "@EmpleadoID";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = empleadoID;
_parametro.SqlDbType = SqlDbType.Int;
_comando.Parameters.Add(_parametro);
MetodosDatos.EjecutarSinConsulta(_comando);
}

public static DataTable BuscarEmpleadosPorNombre(string nombre)
{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText =String.Format( "SELECT * FROM EMPLEADO WHERE NOMBRE LIKE
'%{0}%'",nombre);
return MetodosDatos.EjectuarComandoSelect(_comando);
}
public static DataTable ObtenerEmpleadoPorID(string empleadoID)

{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText = "SELECT * FROM EMPLEADO WHERE
EmpleadoID=@EmpleadoID";
SqlParameter _parametro = new SqlParameter();
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
14

_parametro.ParameterName = "@EmpleadoID";
_parametro.Direction = ParameterDirection.Input;
_parametro.Value = empleadoID;
_parametro.SqlDbType = SqlDbType.Int;
_comando.Parameters.Add(_parametro);
return MetodosDatos.EjectuarComandoSelect(_comando);
}

public static DataTable ObtenerPuestos()
{
SqlCommand _comando = MetodosDatos.CrearComando();
_comando.CommandText = "SELECT PUESTOID,DESCRIPCION FROM PUESTO";
return MetodosDatos.EjectuarComandoSelect(_comando);
}



Paso 5: Cree una nuevo proyecto llamado Logica y agregue la clase AccesoLogica.




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Logica
{
public class AccesoLogica
{
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
15

public static DataTable ObtenerEmpleados()
{
return Datos.AccesoDatos.ObtenerEmpleados();
}
public static void AgregarEmpleado(string nombre, string apellidos,
string direccion, string ciudad, string estado, long telefono,
long celular, long fax, string puestoID)
{
Datos.AccesoDatos.AgregarEmpleado(nombre, apellidos, direccion, ciudad, estado,
telefono, celular, fax, puestoID);
}
public static void ActualizarEmpleado(string empleadoID, string nombre, string apellidos,
string direccion, string ciudad, string estado, long telefono,
long celular, long fax, string puestoID)
{
Datos.AccesoDatos.ActualizarEmpleado(empleadoID, nombre, apellidos, direccion, ciudad,
estado, telefono, celular, fax, puestoID);
}
public static void EliminarEmpleado(string empleadoID)
{
Datos.AccesoDatos.EliminarEmpleado(empleadoID);
}
public static DataTable ObtenerPuestos()
{
return Datos.AccesoDatos.ObtenerPuestos();
}
}
}

public static DataTable BuscarEmpleadosPorNombre(string nombre)
{
return Datos.AccesoDatos.BuscarEmpleadosPorNombre(nombre);
}
public static DataTable ObtenerEmpleadoPorID(string empleadoID)
{
return Datos.AccesoDatos.ObtenerEmpleadoPorID(empleadoID);
}

Paso 6: Cree una nuevo proyecto llamado Presentacion de tipo Windows Forms Application .
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
16



Paso 7: Dentro del formulario agregue un control ToolStrip al formulario.



Paso 8: Agregue un nuevo elemento de tipo button dentro del control ToolStrip.

Paso 9: Dentro del botn agregado coloque la opcin Set Image
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
17



Paso 10: Seleccione la opcin Project Resource File y de clic en la opcin Import despus seleccione el
icono o la imagen a importar y presione Abrir.


Paso 11: Seleccione el botn y de clic derecho Propiedades ImageScaling None.



E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
18



Paso 12: Agregue los siguientes controles.





Paso 13: De doble clic en el primer botn con imagen AgregarEmpleado y coloque el siguiente
cdigo.Nota: Recuerde agregar como referencia la clase Logica para poder utilizar la clase AccesoLogica.

private void tsbtnAgregar_Click(object sender, EventArgs e)
{
try
{
DialogResult resultado = MessageBox.Show("Esta seguro de ingresar
el siguiente registro?", "Agregar Empleado",
MessageBoxButtons.YesNo);
if (resultado == DialogResult.Yes)
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
19

{
if (txtNombre.Text != String.Empty && txtApellidos.Text !=
String.Empty)
{
Logica.AccesoLogica.AgregarEmpleado(txtNombre.Text,
txtApellidos.Text, txtDireccion.Text, txtCiudad.Text,
txtEstado.Text, long.Parse(txtTelefono.Text),
long.Parse(txtCelular.Text), long.Parse(txtFax.Text),
cbPuesto.Text.ToString());

ActualizarDatos();
LimpiarDatos();

}
else
{
MessageBox.Show("Debe colocar nombre y apellidos");
}
}
}
catch (Exception ex)
{
MessageBox.Show("No se pudo agregar el registro " +
ex.Message.ToString(), "Error", MessageBoxButtons.OK);
}
}

Paso 14: De doble clic en el segundo botn con imagen que ha agregado y coloque el siguiente cdigo.

private void tsbtnActualizar_Click(object sender, EventArgs e)
{
try
{
DialogResult resultado = MessageBox.Show("Esta seguro de
actualizar el siguiente registro?", "Actualizar Empleado",
MessageBoxButtons.YesNo);
if (resultado == DialogResult.Yes)
{
if (txtNombre.Text != String.Empty && txtApellidos.Text
!= String.Empty)
{
Logica.AccesoLogica.ActualizarEmpleado(lblEmpleadoID.Tex
t, txtNombre.Text, txtApellidos.Text, txtDireccion.Text,
txtCiudad.Text, txtEstado.Text, long.Parse(txtTelefono.Text),
long.Parse(txtCelular.Text), long.Parse(txtFax.Text),
cbPuesto.Text.ToString());
ActualizarDatos();
LimpiarDatos();

}
else
{
MessageBox.Show("Debo colocar nombre y apellidos"); }
}
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
20


}
catch (Exception ex)
{

MessageBox.Show("No se pudo agregar el registro " +
ex.Message.ToString(), "Error", MessageBoxButtons.OK);
}
}


Paso 15: De doble clic en el tercer botn con imagen y coloque el siguiente cdigo.

private void tsbtnEliminar_Click(object sender, EventArgs e)
{
try
{
DialogResult _resultado = MessageBox.Show("Esta seguro de
elimnar el siguiente registro?", "Actualizar Empleado",
MessageBoxButtons.YesNo);
if (_resultado == DialogResult.Yes)
{
string _empleadoID = lblEmpleadoID.Text;
if (_empleadoID != String.Empty)
{
Logica.AccesoLogica.EliminarEmpleado(_empleadoID);
ActualizarDatos();
LimpiarDatos();
}
}
}
catch (Exception ex)
{
MessageBox.Show("No se pudo eliminar el registro " +
ex.Message.ToString(),
"Error", MessageBoxButtons.OK);
}
}

Paso 16: De doble clic en el cuarto botn con imagen y coloque el siguiente cdigo.

private void tsbtnLimpiar_Click(object sender, EventArgs e)
{
LimpiarDatos();
}

Agregue el mtodo LimpiarDatos()

public void LimpiarDatos()
{
txtNombre.Text = "";
txtApellidos.Text = "";
txtDireccion.Text = "";
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
21

txtTelefono.Text = "";
txtCelular.Text = "";
txtFax.Text = "";
txtCiudad.Text = "";
txtEstado.Text = "";
lblEmpleadoID.Text = "";
}













Paso 17: Cree un evento Actualizar()

private void ActualizarDatos()
{
gvEmpleados.DataSource = Logica.AccesoLogica.ObtenerEmpleados();
gvEmpleados.Refresh();
cbPuesto.DataSource = Logica.AccesoLogica.ObtenerPuestos();
cbPuesto.DisplayMember = "PuestoID";
cbPuesto.Refresh();
}

Paso 18: Coloque ese evento en el evento Load del Formulario.

private void Form1_Load(object sender, EventArgs e)
{
ActualizarDatos();
}

Paso 19: Seleccione el DataGridView, presione clic derecho Propiedades de ah en Eventos y busque el
evento CellClick() y coloque el siguiente cdigo:

private void gvEmpleados_CellClick(object sender,
DataGridViewCellEventArgs e)
{
string _empleadoID;
object value = gvEmpleados.Rows[e.RowIndex].Cells[0].Value;
_empleadoID = value.ToString();
E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
- 22 -
DataTable _tabla = new DataTable();
_tabla =
Logica.AccesoLogica.ObtenerEmpleadoPorID(_empleadoID);
lblEmpleadoID.Text = _tabla.Rows[0][0].ToString();
txtNombre.Text = _tabla.Rows[0][1].ToString();
txtApellidos.Text = _tabla.Rows[0][2].ToString();
txtDireccion.Text = _tabla.Rows[0][3].ToString();
txtCiudad.Text = _tabla.Rows[0][4].ToString();
txtEstado.Text = _tabla.Rows[0][5].ToString();
txtTelefono.Text = _tabla.Rows[0][6].ToString();
txtCelular.Text = _tabla.Rows[0][7].ToString();
txtFax.Text = _tabla.Rows[0][8].ToString();
cbPuesto.Text = _tabla.Rows[0][9].ToString();
}

Paso 20: Agregue tres controles ms al formulario.





Paso 21: De doble clic al botn Buscar.

private void btnBuscar_Click(object sender, EventArgs e)
{
if (txtBuscar.Text != String.Empty)
{
gvEmpleados.DataSource =
Logica.AccesoLogica.BuscarEmpleadosPorNombre(txtBuscar.Text);
}
else
{
MessageBox.Show("Debe colocar un valor en el cuadro de
texto");
}
}

E.A.P. de Informtica y Sistemas
Aplicacin de Lenguajes de Programacin Comercial
Quinto Ao
- 23 -


Paso 22: Por ltimo presin F5 para visualizar el formulario Empleados.

You might also like