Anda di halaman 1dari 10

Ingeniera de Sistemas y Telemtica 1

Laboratorio de Programacin III


Objetivos:
Creacin de Vistas
Realizar Consulta de Registros
1. Caso Prctico
En Microsoft SQL Server
USE master
Go

IF exists(SELECT * FROM sysdatabases WHERE name = 'Comercio')


Drop Database Comercio
Go

--Crear la Base de Datos


Create Database Comercio
Go

--Abrir la Base de Datos


Use Comercio
Go

--Tablas
Create Table TbRegion
( CodRegion Char(2) Not Null,
NombreRegion Varchar(35) Not Null,
)
Go
Alter Table TbRegion Add Constraint PK_Region Primary Key(CodRegion)
Go

Create Table TbDpto


( CodDpto Char(2) Not null,
NombreDpto Varchar(40) Not null,
Capital Varchar(30) Not null,
IdRegion Char(2) ,
)
Go
Alter Table TbDpto Add Constraint PK_Dpto Primary Key(CodDpto)
Go

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 2

Create Table TbCliente


( CodCliente Char(3) Not null ,
Nombre Varchar(50) Not null ,
Direccion Varchar(40) Not null ,
Distrito Varchar(20) Not null ,
Telefono Varchar(12) ,
IdDpto Char(2) ,
)
Go

Alter Table TbCliente Add Constraint PK_Cliente Primary Key(CodCliente)


Go

--Relaciones
Alter Table TbDpto Add Constraint FK_DepartamentoRegion Foreign
Key(IdRegion)
References TbRegion (CodRegion)
Go

Alter Table TbCliente Add Constraint FK_ClienteDepartamento Foreign


key(IdDpto)
References TbDpto (CodDpto)
Go

--Vistas
CREATE VIEW v_General_Cliente
AS
SELECT CodCliente,Nombre,Direccion,Distrito,Telefono,NombreDpto
FROM TbCliente C,TbDpto D
WHERE C.IdDpto=D.CodDpto
Go

--Procedimientos Almacenados
CREATE PROCEDURE sp_Inserta_Region
@col1 Char(2),
@col2 Varchar(35)
AS
INSERT TbRegion VALUES(@col1,@col2)
Go

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 3

CREATE PROCEDURE sp_Listado_Region


AS
SELECT * FROM TbRegion ORDER BY 2
Go

CREATE PROCEDURE sp_Inserta_Dpto


@col1 Char(2),
@col2 Varchar(40),
@col3 Varchar(30),
@col4 Varchar(35) --Nombre de la Regin
AS
DECLARE @c_region Char(2)
SELECT @c_region=codregion FROM TbRegion WHERE
NombreRegion=@col4
INSERT TbDpto VALUES(@col1,@col2,@col3,@c_region)
Go

CREATE PROCEDURE sp_Listado_Dpto


AS
SELECT * FROM TbDpto ORDER BY 2
Go

CREATE PROCEDURE sp_Inserta_Cliente


@col1 Char(3),
@col2 Varchar(50),
@col3 Varchar(40),
@col4 Varchar(20),
@col5 Varchar(12),
@col6 Varchar(40) --Nombre del Dpto
AS
DECLARE @c_dpto Char(2)
SELECT @c_dpto=coddpto FROM TbDpto WHERE NombreDpto=@col6
INSERT TbCliente VALUES(@col1,@col2,@col3,@col4,@col5,@c_dpto)
Go

CREATE PROCEDURE sp_Buscar_Cliente


@col1 varchar(50)
AS
SELECT * FROM v_General_Cliente
WHERE Nombre LIKE '%'+@col1+'%'
ORDER BY 2
Go

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 4

--Registros
EXEC sp_Inserta_Region '01','Lambayeque'
EXEC sp_Inserta_Region '02','Cajamarca'
EXEC sp_Inserta_Region '03','La Libertad'
Go

EXEC sp_Inserta_Dpto '01','Lambayeque','Chiclayo','Lambayeque'


EXEC sp_Inserta_Dpto '02','La Libertad','Trujillo','Lambayeque'
EXEC sp_Inserta_Dpto '03','Cusco','Cusco','Cajamarca'
EXEC sp_Inserta_Dpto '04','Lima','Lima','Lambayeque'
EXEC sp_Inserta_Dpto '05','Arequipa','Arequipa','Lambayeque'
EXEC sp_Inserta_Dpto '06','Ancash','Huaraz','Lambayeque'
EXEC sp_Inserta_Dpto '07','Loreto','Iquitos','La Libertad'
EXEC sp_Inserta_Dpto '08','Piura','Piura','Lambayeque'
EXEC sp_Inserta_Dpto '09','Ica','Ica','Lambayeque'
EXEC sp_Inserta_Dpto '10','Junin','Huncayo','Cajamarca'
EXEC sp_Inserta_Dpto '11','Cajamarca','Cajamarza','Cajamarca'
EXEC sp_Inserta_Dpto '12','Puno','Puno','Cajamarca'
EXEC sp_Inserta_Dpto '13','Tumbes','Tumbes','Lambayeque'
EXEC sp_Inserta_Dpto '14','Amazonas','Chachapoyas','La Libertad'
EXEC sp_Inserta_Dpto '15','San Martin','Moyobamba','La Libertad'
EXEC sp_Inserta_Dpto '16','Huanuco','Huanuco','Cajamarca'
EXEC sp_Inserta_Dpto '17','Pasco','Cerro de Pasco','Cajamarca'
EXEC sp_Inserta_Dpto '18','Huancavelica','Huancavelica','Cajamarca'
EXEC sp_Inserta_Dpto '19','Ayacucho','Ayacucho','Cajamarca'
EXEC sp_Inserta_Dpto '20','Apurimac','Abancay','La Libertad'
EXEC sp_Inserta_Dpto '21','Madre de Dios','Puerto Maldonado','La Libertad'
EXEC sp_Inserta_Dpto '22','Ucayali','Pucallpa','La Libertad'
EXEC sp_Inserta_Dpto '23','Moquegua','Moquegua','Lambayeque'
EXEC sp_Inserta_Dpto '24','Tacna','Tacna','Lambayeque'
Go

EXEC sp_Inserta_Cliente '001','Cesar Paz Bustamante','AV. El Portal


258','Arequipa','235699','Arequipa'
EXEC sp_Inserta_Cliente '002','Maria Rios Vargas','Av. Luis Gonzales
895','Chiclayo','227856','Lambayeque'
EXEC sp_Inserta_Cliente '003','Pedro Flores Deza','Jr. de la Union
220','Lima','2568945','Lima'
EXEC sp_Inserta_Cliente'004','Rosa Pastor Villegas','Av.
Arequipa','Miraflores','6789865','Arequipa'

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 5

EXEC sp_Inserta_Cliente'005','Juan Huamn Fernandez','Av. Balta


1035','Chiclayo','239674','Lambayeque'
EXEC sp_Inserta_Cliente'006','Milagros Rivera Llontop','Av. El Sol
858','Cusco','235699','Cusco'
EXEC sp_Inserta_Cliente'007','Henry Ferre Cieza','Av. EL lago
252','Puno','254711','Puno'
EXEC sp_Inserta_Cliente'008','Ana Santisteban Gil','Av. Pedro Ruiz
458','Chiclayo','227391','Lambayeque'
EXEC sp_Inserta_Cliente'009','David Portilla Guerrero','Av. Aviacin 4589','La
Victoria','5489563','Lima'
EXEC sp_Inserta_Cliente'010','Carmen Tejada Valverde','Av. America Sur
1258','Trujillo','284150','La Libertad'
EXEC sp_Inserta_Cliente'011','Karina Soto Villacorta','Av. La Palma
589','Guadalupe','254700','La Libertad'
EXEC sp_Inserta_Cliente'012','Julio Juarez Rivas','Av. El Triunfo
148','Guadalupe','254780','La Libertad'
EXEC sp_Inserta_Cliente'013','Roberto Castro Velasquez','El Portal
548','Arequipa','236950','Arequipa'
EXEC sp_Inserta_Cliente'014','Sandra Ramos Tineo','Av. Grau
489','Piura','204740','Piura'
EXEC sp_Inserta_Cliente'015','Ricardo Becerra Portillo','Jr. Lima
489','Negritos','235680','Piura'
EXEC sp_Inserta_Cliente'016','Alonso Heredia Cabanillas','Av. 28 de Julio
1458','Pueblo Libre','687542','Lima'
EXEC sp_Inserta_Cliente'017','Alberto Campos Zuloeta','Av. Bolognesi
896','Chiclayo','228186','Lambayeque'
EXEC sp_Inserta_Cliente'018','Nancy Tello Fernandez','Av. Venezuela
1289','Callao','784652','Lima'
EXEC sp_Inserta_Cliente'019','Alfonso Padilla Rivas','Av. Huascar
456','Piura','225440','La Libertad'
EXEC sp_Inserta_Cliente'020','Teresa Ortiz Flores','Av. Emancipacin
411','Lima','2896545','Arequipa'
EXEC sp_Inserta_Cliente'021','Abelardo Medina Vera','Av. Balta
1451','Chiclayo','235877','Lambayeque'
EXEC sp_Inserta_Cliente'022','Marcio Terrones Quiroz','Av. San Jos
941','Piura','201477','Arequipa'
EXEC sp_Inserta_Cliente'023','Sandro Carrin Perrigo','Av. San Esperanza
820','Lima','225587','La Libertad'
EXEC sp_Inserta_Cliente'024','Daniel Medianero Cruz','Av. Constitucin
1047','Talara','656599','Cusco'

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 6

EXEC sp_Inserta_Cliente'025','Ana Mechn Fernandez','Av. Taladro


220','Chepn','235699','Lambayeque'
EXEC sp_Inserta_Cliente'026','Maria Arbul Huamn','Av. Tahuantinsuyo
10251','Lima','225787','Lima'
EXEC sp_Inserta_Cliente'027','Cesar Casas Mendoza','Av. Libertad
603','Castilla','259001','Cusco'
EXEC sp_Inserta_Cliente'028','Diego Jacinto Isique','Av. Moche
240','Chiclayo','252359','Lambayeque'
EXEC sp_Inserta_Cliente'029','Jos Vasquez Torres','Av. Gladiolos
603','Surco','231540','Arequipa'
Go

--Verificar Procedimiento Almacenado sp_Buscar_Cliente


EXEC sp_Buscar_Cliente 'ma'
Go

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 7

En Visual .NET

1. En la Capa de Datos importar el Espacio de Nombre para el Manejo de Base


de Datos

Imports System.Data.SqlClient

2. Luego en la misma capa crear una clase con el nombre conexion

Public Class conexion


Private con As SqlConnection

Public Function conecta() As SqlConnection


con = New SqlConnection("server=(local);Initial Catalog=Comercio;Integrated
Security=SSPI")
Return con
End Function

End Class

3. Luego crear otra clase con el nombre procesos

Imports System.Data.SqlClient

Public Class procesos


Private con As SqlConnection
Private cmd As SqlCommand
Private dtb As DataTable
Private da As SqlDataAdapter
Private cn As New conecta

Public Function BuscarCliente(dato As String) As DataTable


Dim Tabla As New DataSet
Try
con = cn.conecta()
cmd = New SqlCommand("sp_Buscar_Cliente", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@col1", SqlDbType.VarChar).Value = dato
da = New SqlDataAdapter(cmd)

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 8

da.Fill(Tabla)
Return Tabla.Tables(0)
Catch ex As Exception
MsgBox(ex.Message, 0, "ERROR")
Finally
If con.State = ConnectionState.Open Then
con.Close()
End If
End Try
End Function

Public Function Listado_Cliente() As DataTable


con = cn.conecta
dtb = New DataTable
da = New SqlDataAdapter("SELECT * FROM v_General_Cliente", con)
da.Fill(dtb)
Return dtb
End Function

End Class

4. En la Capa de negocios invocar la clase datos

Imports datos

5. Luego en la Capa negocios crear clase con el nombre valida

Public Class valida


Private obj As New procesos
Public Event mistake(ByVal c As Integer)

Public Function Listar_Cliente() As DataTable


Return obj.Listado_Cliente
End Function

End Class

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 9

6. Luego en la capa Presentacion crear el formulario Frm_Consulta_Cliente

a. El formulario contiene los siguientes objetos:

Objetos Cantidad
Label(Etiqueta) 1
TextBox(Cuadro de texto) 1
CommandButton(Botn de Comando) 1
DataGridView (Vista Rejilla de Datos) 1

b. Aplicar las siguientes propiedades a los objetos:

Objeto Propiedad Valor


(Name) Frm_Consulta_Cliente
FormBorderStyle FixedSingle
Form Text Consulta de Clientes
Icon Seleccione el icono de su preferencia
StartPosition CenterScreen
DataGridView1 (Name) DGVCliente
Label1 Text Buscar Cliente Por Nombre
(Name) TxtDato
Text1 BorderStyle FixedSingle
Text Dejarlo vaco

Semana 03 Marco Aurelio Porro Chulli


Ingeniera de Sistemas y Telemtica 10

Objeto Propiedad Valor


(Name) BtnSalir
Button1
Text &Salir

En el Formulario se siguiere el siguiente cdigo:


Imports System.Data.SqlClient
Imports negocios
Imports datos

Public Class Frm_Consulta_Cliente


Dim WithEvents app As New valida

Private Sub TxtDato_TextChanged(sender As Object, e As EventArgs)


Handles TxtDato.TextChanged
Dim Cli As New procesos
If Me.TxtDato.TextLength <> 0 Then
Me.DGVCliente.DataSource = Cli.BuscarCliente(Me.TxtDato.Text)
Else
Me.DGVCliente.DataSource = app.Listar_Cliente
End If
End Sub

Private Sub Frm_Consulta_Cliente_Load(sender As Object, e As


EventArgs) Handles MyBase.Load
Me.DGVCliente.DataSource = app.Listar_Cliente
End Sub

Private Sub BtnSalir_Click(sender As Object, e As EventArgs) Handles


BtnSalir.Click
Me.Close()
End Sub

End Class

Semana 03 Marco Aurelio Porro Chulli

Anda mungkin juga menyukai