Вы находитесь на странице: 1из 27

Gua Prctica N 3: Manejo de Procedimientos Almacenados

OBJETIVO
1. Reconocer los conceptos bsicos de Programacin Orientada a Objetos en Base de
Datos utilizando ADO.NET para el manejo de Procedimientos Almacenados en las
transacciones.
2. Realizar ejercicios prcticos que permitan poner en prctica los conceptos que
aprenderemos en esta Unidad.
3. Proponer una solucin alterna a la solucin presentada por el docente
4. Resolver a las preguntas que se preguntan por cada sesin.

SESION 1: Actualizacin de datos


Implemente un Formulario donde Actualice los Clientes
Solucin: Estructura de la base de datos, tal como se muestra

Estructura de la Tabla tb_clientes


donde se realizar el proceso de
actualizacin

Estructura de la Tabla tb_paises que


listarn los diversos pases que radica el
cliente.

1
Diseo del Formulario. Se puede observar que utilizaremos un ComboBox para seleccionar un pas desde la
tabla tb_paises

TextBox, (name) txtCodigo

TextBox, (name) txtNombre

TextBox, (name) txtDireccion

Combo, (name) cboPais

TextBox, (name) txtFono

Control DataGridView1

Configurar el DataGridView1, para una mejor presentacin configuramos las columnas del datagridview1,
a continuacin siga con los siguientes pasos.

Hacer clic en la lista


de tareas del
DataGridView1

Seleccione la opcin

2
En el editor de Columnas, primero presione el botn Agregar, para agregar una columna.
En la ventana Agregar Columnas, ingrese el nombre de la columna (Name), el texto del encabezado (Header
Text), seleccione la opcin Solo lectura para que columna no pueda sobrescribirse.

Nombre de la columna

Encabezado de columna

Indica que el campo es solo Al ingresar los datos del


lectura campo, presione el botn
Agregar

1. PRESIONE ESTE BOTON


PARA AGREGAR COLUMNAS
AL CONTROL

Agregue ms columnas, tal como se muestra

Este campo representa el


cdigo del pas y lo
llamaremos codigopais

Indica que est campo estar


oculto y no se visualiza en el
Control.

3
Configurar el Origen de Datos de cada columna, para realizar esta operacin seleccione la propiedad
DataPropertyName e ingrese el nombre del campo a vincular con la columna, tal como se muestra.

Propiedad que permite


vincular a la columna el
origen de datos

NombreCia,
Campo del
nombre del
Cliente

Direccion, Campo de la
direccin del cliente

4
NombrePais, Campo del
nombre del pas

Codpais, campo que


representa el cdigo
del pas.

Telefono, campo que


representa el fono del
cliente.

Luego presione el botn


Aceptar

5
Al concluir con el proceso se visualiza el DataGridView1 configurado por cada una de las columnas agregadas por
el Editor

Repaso:
Generar una cadena de Conexin Pblica utilizando el app.config

Paso 1: Primero vamos a


publicar la conexin a la
Base de datos, para esto
agregamos el app.config,
tal como se muestra en la
figura

En el archivo app.config
vamos a definir la

6
cadena de conexin, para esto debemos definir la etiqueta <connectionString>, tal como se muestra
en la figura

name: permite
asignar un nombre a
la conexin

connectionString: donde definimos el


Servidor, la Base de Datos y el modo de
autenticacin

Como estamos definiendo la conexin desde el app.config, debemos utilizar la llibreria


System.Configuration para trabajar con la conexin.
Abrir el archivo MyProject y seleccionamos la pestaa References, tal como se muestra

Add: Permite agregar la


librera

Libreras de trabajo

7
Programacin Orientada a Objetos II

Presione el botn Add, y seleccione la


librera System.Configuration, tal
como se muestra en la figura.
Presione el botn OK para aceptar.

Solucin al formulario de Actualizacin de Clientes: Programacin

Defina las libreras de trabajo: System.Data.SqlClient (Base de Datos en SQL Server) y el


System.Configuration.ConfigurationManager (uso de las etiquetas app.config)

Defina las libreras de trabajo


dentro del Form

A continuacin defina la conexin a la Base de Datos utilizando el SQLConnection

Defina la conexin a la Base de datos utilizando


ConnectionStrings(variable)

Elaborado por Dmaso Lpez Aragn 8


Programacin Orientada a Objetos II

Defina las funciones para listar los clientes y los pases, tal como se muestra.

Funcin clientes de tipo Datatable, retorna la


informacin de los clientes combinada con los
pases. ( inner join)

Funcin paises de tipo Datatable, el cual retorna la


informacin de los pases

Configurar el Load del Formulario para cargar el Combo cbopais y el dataGridView1

Instrucciones para cargar los


paises en el Combo cbopais:
DataSource, DisplayMember y
ValueMember

Instrucciones para cargar los


clientes en el DataGridView1

Elaborado por Dmaso Lpez Aragn 9


Programacin Orientada a Objetos II

Al ejecutar el
Formulario, se
visualiza los pases
en el Combo y los
clientes en el
DataGridView1, tal
como se muestra.

Programacin de los Eventos de los Controles

Evento CellClick del control DataGridView1, en este proceso permite visualizar los datos de un cliente en
los controles, al seleccionar una celda.

El valor de la Celda fono, la cual


est definida en la edicin de
columnas, de la fila Actual:
CurrentRow
Elaborado por Dmaso Lpez Aragn 10
Programacin Orientada a Objetos II

Evento Click del botn Agregar, permite agregar un Cliente


Defina la sentencia Insert en el
SqlCommand cuyos valores
estarn definidos por variables:
@id, @nom

Las variables deben ser definidas


Para ejecutar, abrir en la coleccin Parameters:
la conexin nombre, tipo de dato y su valor

Para ejecutar, utilice el mtodo


ExecuteNonQuery el cual retorna
el nmero de registros afectados

Caso de error: cdigo duplicado,


Al finalizar, cerrar la muy grande es el valor a ingresar,
conexin etc, mostrar un mensaje

Evento Click del botn Limpiar: En este proceso se limpiar los controles TextBox y el Combo

Elaborado por Dmaso Lpez Aragn 11


Programacin Orientada a Objetos II

Para comprobar, presione


F5, ingrese los datos, y
presione el boton
Agregar.

Evento Click del botn Actualizar, permite modificar los datos de un cliente

Defina la sentencia Update en el


SqlCommand cuyos valores
estarn definidos por variables:
@id, @nom

Las variables deben ser definidas


en la coleccin Parameters:
nombre, tipo de dato y su valor

Para ejecutar, abrir


la conexin
Para ejecutar, utilice el mtodo
ExecuteNonQuery el cual retorna
el nmero de registros afectados

Caso de error: cdigo duplicado,


muy grande es el valor a ingresar,
Al finalizar, cerrar la etc, mostrar un mensaje
conexin

Elaborado por Dmaso Lpez Aragn 12


Programacin Orientada a Objetos II

Para comprobar,
presione F5,
seleccione un cliente
del DataGridView
modifique sus datos,
al presionar el botn
Actualizar se
actualizar en la base
de datos.

Evento Click del


botn Eliminar, permite eliminar un cliente por su cdigo, ingrese las sentencias tal como se muestran

Elaborado por Dmaso Lpez Aragn 13


Programacin Orientada a Objetos II

Para comprobar, presione F5, seleccione un cliente del DataGridView presione el botn Eliminar, se
habr eliminado de la base de datos

Elaborado por Dmaso Lpez Aragn 14


Programacin Orientada a Objetos II

SESION 2: Actualizacin de datos utilizando Transacciones


Implemente un Formulario donde Actualice los Clientes utilizando Procedimientos
Almacenados.

Solucin: Definicin de los procedimientos almacenados en la base de datos que permitan la actualizacin de
los clientes, tal como se muestra

Procedimiento Almacenado que


permita insertar un cliente, defina los
parmetros para el ingreso de los
datos y efectuar la insercin.

Procedimiento Almacenado que


permita la actualizacin de un cliente
por su cdigo Where idcliente = @id

Procedimiento Almacenado que


permita eliminar un cliente por su
cdigo:

Where idcliente = @id

Elaborado por Dmaso Lpez Aragn 15


Programacin Orientada a Objetos II

Diseo del Formulario. Se puede observar que utilizaremos un ComboBox para seleccionar un pas desde la
tabla tb_paises

TextBox, (name) txtCodigo

TextBox, (name) txtNombre

TextBox, (name) txtDireccion

Combo, (name) cboPais

TextBox, (name) txtFono

Control DataGridView1

Configurar el DataGridView1, para una mejor presentacin configuramos las columnas del datagridview1,
a continuacin siga con los siguientes pasos.

Hacer clic en la lista


de tareas del
DataGridView1

Seleccione la opcin

Elaborado por Dmaso Lpez Aragn 16


Programacin Orientada a Objetos II

En el editor de Columnas, primero presione el botn Agregar, para agregar una columna.
En la ventana Agregar Columnas, ingrese el nombre de la columna (Name), el texto del encabezado (Header
Text), seleccione la opcin Solo lectura para que columna no pueda sobrescribirse.

Nombre de la columna

Encabezado de columna

Indica que el campo es solo Al ingresar los datos del


lectura campo, presione el botn
Agregar

1. PRESIONE ESTE BOTON


PARA AGREGAR COLUMNAS
AL CONTROL

Agregue ms columnas, tal como se muestra

Este campo representa el


cdigo del pas y lo
llamaremos codigopais

Indica que est campo estar


oculto y no se visualiza en el
Control.

Configurar el Origen de Datos de cada columna, para realizar esta operacin seleccione la propiedad
DataPropertyName e ingrese el nombre del campo a vincular con la columna, tal como se muestra.

Elaborado por Dmaso Lpez Aragn 17


Programacin Orientada a Objetos II

NombreCia,
Campo del
nombre del
Cliente

Direccion, Campo de la
direccin del cliente

Elaborado por Dmaso Lpez Aragn 18


Programacin Orientada a Objetos II

NombrePais,
Campo del nombre
del pas

Codpais, campo
que representa el
cdigo del pas.

Telefono, campo que


representa el fono del
cliente.
Luego presione el botn
Aceptar

Al concluir con el proceso se


visualiza el DataGridView1
configurado por cada una de
las columnas agregadas por el
Editor

Elaborado por Dmaso Lpez Aragn 19


Programacin Orientada a Objetos II

Solucin al formulario de Actualizacin de Clientes: Programacin


Defina las libreras de trabajo: System.Data.SqlClient (Base de Datos en SQL Server) y el
System.Configuration.ConfigurationManager (uso de las etiquetas app.config)

Defina las libreras de


trabajo dentro del Form

A continuacin defina la conexin a la Base de Datos utilizando el SQLConnection

Defina la conexin a la base de datos utilizando


ConnectionStrings(variable)

Elaborado por Dmaso Lpez Aragn 20


Programacin Orientada a Objetos II

Defina las funciones para listar los clientes y los pases, tal como se muestra.

Funcin clientes de tipo Datatable, retorna


la informacin de los clientes combinada
con los pases. ( inner join)

Funcin pases de tipo Datatable, el cual


retorna la informacin de los pases

Configurar el Load del Formulario para cargar el Combo cbopais y el dataGridView1

Instrucciones para cargar los


paises en el Combo cbopais:
DataSource, DisplayMember y
ValueMember

Instrucciones para cargar los


clientes en el DataGridView1

Elaborado por Dmaso Lpez Aragn 21


Programacin Orientada a Objetos II

Evento CellClick del control DataGridView1, en este proceso permite visualizar los datos de un cliente en
los controles, al seleccionar una celda.

El valor de la celda fono, la


cual est definida en la edicin
de columnas, de la fila Actual:
CurrentRow

Elaborado por Dmaso Lpez Aragn 22


Programacin Orientada a Objetos II

Evento Click del botn Agregar, permite agregar un Cliente ejecutando el procedure usp_inserta_cliente
Abrir la conexin para
definir la transaccin
Definir la transaccin
tr de tipo de
aislamiento

Defina el Command con


el Procedure y la
transaccin, indique
ser de tipo Procedure

Defina los
parmetros del
procedure

Ejecute el Command

Commit() confirma la
actualizacin a la BD

Caso de error mostrar un


mensaje y deshacer la
operacin: RollBack()

Al finalizar, cerrar
la conexin

Para comprobar, presione


F5, ingrese los datos, y
presione el boton
Agregar.

Elaborado por Dmaso Lpez Aragn 23


Programacin Orientada a Objetos II

Evento Click del botn Actualizar, permite modificar los datos de un cliente ejecutando el procedure
usp_update_cliente
Abrir la conexin para
definir la transaccin
Definir la transaccin tr de
tipo de aislamiento
Serializable

Defina el Command con el


Procedure y la transaccin,
indique ser de tipo
Procedure

Defina los parmetros


del procedure

Ejecute el Command

Commit() confirma la
actualizacin a la BD

Caso de error mostrar un


mensaje y deshacer la operacin:
RollBack()

Al finalizar, cerrar la
conexin

Para comprobar, presione F5,


seleccione un cliente del
DataGridView modifique sus
datos, al presionar el botn
Actualizar se actualizar en la
base de datos.

Elaborado por Dmaso Lpez Aragn 24


Programacin Orientada a Objetos II

Evento Click del botn Eliminar, permite eliminar un cliente por su cdigo ejecutando el procedure
usp_update_cliente
Abrir la conexin para
definir la transaccin
Definir la transaccin tr de
tipo de aislamiento
Serializable

Defina el Command con el


Procedure y la transaccin,
indique ser de tipo
Procedure

Defina los parmetros


del procedure

Ejecute el Command

Commit() confirma la
actualizacin a la BD

Caso de error mostrar un


mensaje y deshacer la operacin:
RollBack()

Al finalizar, cerrar la
conexin

Para comprobar, presione F5,


seleccione un cliente del
DataGridView presione el botn
Eliminar, se habr eliminado de la
base de datos

Elaborado por Dmaso Lpez Aragn 25


Programacin Orientada a Objetos II

DESARROLLO PRCTICO PROPUESTO

Se desea implementar un Formulario que permita actualizar las pelculas de la base de datos BDVideos. La
estructura de las tablas:

Create DataBase BDVideos


Go
create table Genero (
cod_gen char(3) not null constraint pkcod_gen primary key,
des_gen varchar(80) )
go
insert genero values('G01','Comedia')
insert genero values('G02','Terror')
insert genero values('G03','Drama')
insert genero values('G04','Accion')
insert genero values('G05','Romantica')
go

create table formato (


cod_for int not null constraint pkcod_for primary key,
des_for varchar(50),
precio decimal )
go
insert formato values(1,'DVD',3.5)
insert formato values(2,'VCD',2.0)
insert formato values(3,'VHS',1.5)
go

create table peliculas (


cod_pel int identity constraint pdcod_pel primary key,
nom_pel varchar(80),
duracion int,
cod_gen char(3),
cod_for int,
cant_cop int)
go

Elaborado por Dmaso Lpez Aragn 26


Programacin Orientada a Objetos II

Se pide:

1. Defina los procedures para realizar los procesos de insercin, actualizacin y eliminacin de pelculas.

2. Disee el formulario para actualizar las pelculas

3. Configure el DataGridView1 para listar las pelculas incluyendo el gnero y formato.


4. Programe los eventos de los controles que permitan actualizar las pelculas utilizando los procedures y
las transacciones

Elaborado por Dmaso Lpez Aragn 27