Vous êtes sur la page 1sur 131

Grupo Educativo Leonardo Da Vinci

COMPUTREIN

NOTA: La informacin contenida en este


material, tiene un fin exclusivamente
didctico, y por lo tanto, no est previsto su
aprovechamiento a nivel profesional o
industrial. Organizacin Leonardo Da Vinci
no ser jurdicamente responsable por:
errores u omisiones; daos y perjuicios que
se pudieran atribuir al uso de la informacin
comprendida en este libro, ni por la
utilizacin indebida que pueda drsele.

Prefacio

Visual Basic .NET - Avanzado

-2-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

MS Visual Basic .NET - Avanzado, es un manual que te ayudar a


utilizar las operaciones y transacciones del lenguaje de programacin
ms usado actualmente. Al hacerlo aprenders tambin a desarrollar la
capacidad de diseo e implementacin de programas, a generar
soluciones mediante mtodos ordenados, y a trabajar en equipo; tres
cosas que te sern muy tiles durante toda tu vida.
Los procedimientos empleados en este manual para el diseo e
implementacin de Programas, te permitirn realizar con gran facilidad y
con calidad excepcional, aquellas tareas que involucren mantenimientos
y actualizaciones de programas.
Al trabajar con estas tareas, tu funcin ser el de programador de
computadoras; es decir, ser quien plantee y desarrolle las soluciones
para alcanzar los objetivos propuestos, creando soluciones fciles de
implementar. Tu asesor ser el usuario que plantear el problema que
debes resolver.
MS Visual Basic .NET - Avanzado, presenta los casos, procedimientos,
tips, actividades, cuestionarios y trminos tcnicos computacionales
adecuados y claros para ti, para que aprendas de manera sencilla.

El Director

Los nombres comerciales que aparecen


en este libro son maracas registradas de
sus propietarios y se mencionan
nicamente con fines didcticos, por lo
que Organizacin Leonardo Da Vinci no
asume ninguna responsabilidad por el uso

Visual Basic .NET - Avanzado

-3-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

que se d a esta informacin, ya que no


infringe ningn derecho de registro de
marca.

Colabor con la recopilacin de esta informacin:


Ing. Nathaly Vernica Prado Ramrez.

NDICE DE CONTENIDOS
PROGRAMACIN ORIENTADA A OBJETOS........................................8
POO EN MICROSOFT VISUAL BASIC.NET......................................9
CONCEPTOS DE POO............................................................................. 9
DEFINICIN DE OBJETOS.....................................................................10

Visual Basic .NET - Avanzado

-4-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

DEFINICIN DE CLASES.......................................................................10
CREAR UNA CLASE.............................................................................. 12
CREACIN DE CAMPOS PARA LA CLASE...............................................13
MTODOS............................................................................................ 14
INSTANCIAR UNA CLASE......................................................................14
PROPIEDADES...................................................................................... 17
ENCAPSULACIN A TRAVS DE PROPIEDADES....................................19
PROPIEDADES DE SLO LECTURA O SLO ESCRITURA........................20
TRABAJANDO CON EVENTOS EN WINDOWS FORM.........................23
EVENTOS EN WINDOWS FORM..................................................24
QU ES UN EVENTO?.........................................................................24
PROGRAMACIN BASADA EN EVENTOS...............................................25
ESQUEMA BSICO DE UN SISTEMA ORIENTADO A EVENTOS...............26
EL EMISOR DE EVENTOS......................................................................26
EL RECEPTOR DE EVENTOS.................................................................27
CONEXIN CON UN MANIPULADOR DE EVENTOS................................27
ENLACE ESTTICO DE EVENTOS..........................................................28
CAJAS DE DILOGO EN APLICACIONES WINDOWS...............................30
VALIDAR ENTRADAS DE USUARIO........................................................31
INTRODUCCIN A ADO .NET........................................................32
ACCESS DATA OBJECT EN VISUAL BASIC.NET.............................33
TERMINOLOGA DE BASE DE DATOS....................................................33
CONCEPTO........................................................................................... 35
ARQUITECTURA DE ADO .NET..............................................................36
ENTORNO CONECTADO O DESCONECTADO.........................................36
DATASET.............................................................................................. 36
COMPONENTES DE ADO.NET...............................................................37
OBJETOS COMUNES DE ADO.NET........................................................38
ESPACIOS DE NOMBRES Y CLASES EN ADO .NET.................................38
OBJETOS ADO. NET.............................................................................. 39
PROVEEDORES DE DATOS DE .NET......................................................40
CONEXIN CON FUENTES DE DATOS............................................41
CONEXIN CON FUENTES DE DATOS.........................................42
CREACIN DE CONEXIONES................................................................42
LAS CLASES COMMAND.......................................................................46
MTODOS DE LAS CLASES COMMAND.................................................47
APLICACIONES DE LAS CLASES COMMAND..........................................48
INSERTAR DATOS USANDO SQLCOMMAND..........................................49

Visual Basic .NET - Avanzado

-5-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

RECUPERAR DATOS USANDO DATAREADERS.......................................51


ENLACE A DATOS EN WINDOWS FORM I........................................59
OBJETOS DE ENLACE DE DATOS................................................60
OBJETO DATAADAPTER........................................................................60
OBJETO DATASET................................................................................. 61
USO DE DATASET FRENTE A DATAREADER..........................................69
EXPLORADOR DE SERVIDORES.................................................70
ENLACE A DATOS EN WINDOWS FORM II.......................................75
TABLAS DE BSQUEDAS...........................................................76
CONTROL DATAGRIDVIEW....................................................................76
ACTUALIZAR DATOS CON DATAADAPTER Y DATASET...........................78
ADMINISTRAR DATOS EN UNA TABLA..................................................82
DATARELATION.................................................................................... 87
LA CLASE DATAVIEW............................................................................88
DESARROLLANDO COMPONENTES Y CONTROLES DE USUARIO.......90
HERENCIA ENTRE FORMULARIOS..............................................91
HERENCIA VISUAL................................................................................ 91
AGREGAR UN PROYECTO CON UN FORMULARIO DERIVADO................95
CRYSTAL REPORTS I..................................................................103
INFORMES............................................................................104
CREAR CONEXIN CON LA BASE DE DATOS......................................104
CREAR UN INFORME..........................................................................109
ACCEDER A LA BASE DE DATOS........................................................111
CRYSTAL REPORTS II.................................................................116
MOSTRAR INFORMES.............................................................117
VISUALIZADOR DEL INFORME............................................................117
CREAR UN INFORME DESDE ADO NET...............................................119
VISUALIZAR EL INFORME...................................................................119
PROYECTOS DE INSTALACIN....................................................120
INSTALAR APLICACIONES.......................................................121
PROYECTO DE INSTALACIN..............................................................121
INSTALAR APLICACIONES...................................................................126
PROYECTO FINAL......................................................................130
DESARROLLO PROYECTO FINAL..............................................131

Visual Basic .NET - Avanzado

-6-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 1
PROGRAMACIN
ORIENTADA

OBJETOS

Al finalizar la Sesin usted ser capaz de:


Competencia:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Procedimentales:

Participa sugiriendo sobre las actividades propuestas.


Analiza informacin acerca de la programacin orientada objetos
mediante los contenidos entregados.
Crea objetos dentro de su aplicacin.
Actitudinales:

Reconoce la importancia del la programacin orientada a objetos e


implementacin de clases.

Visual Basic .NET - Avanzado

-7-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

POO EN MICROSOFT VISUAL BASIC.NET


CONCEPTOS DE POO
Se trata de una evolucin de la programacin procedural basada en
funciones, que permite agrupar elementos de cdigo (rutinas y datos) con
funcionalidades similares, bajo un sistema unificado de manipulacin y
acceso a dichos elementos.
La organizacin de una aplicacin en POO se realiza mediante estructuras
de cdigo. Una estructura de cdigo contiene un conjunto de
procedimientos e informacin que ejecutan una serie de procesos
destinados a resolver un grupo de tareas con un denominador comn. Una
aplicacin orientada a objetos tendr tantas estructuras de cdigo como
aspectos del programa sea necesario resolver.
Un procedimiento que est situado dentro de una de estructura de este tipo,
no podr llamar ni ser llamado por otro procedimiento situado en una
estructura distinta, si no es bajo una serie de reglas. Lo mismo suceder
con los datos que contenga la estructura, permanecern aislados del
exterior, y slo sern accesibles siguiendo ciertas normas. Una estructura de
cdigo, es lo que en POO identificamos como objeto.
Al ser las estructuras de cdigo u objetos, entidades que contienen una
informacin precisa y un comportamiento bien definido a travs del
conjunto de procedimientos que incluyen, pueden ser clasificados en funcin
de las tareas que desempean. Precisamente, uno de los fines perseguidos
por la POO es conseguir una mejor catalogacin del cdigo, en base a
estructuras jerrquicas dependientes, al estilo de un rbol genealgico.
Trasladando las nociones que acabamos de exponer al ejemplo anterior, en
el cual se programaban los procesos de gestin de los empleados de una
empresa, el resultado obtenido ser una estructura de cdigo conteniendo
todos los procedimientos, funciones y variables de la aplicacin, implicados
en las operaciones a realizar con un empleado, o lo que es lo mismo, un
objeto Empleado. Entre los elementos de este objeto encontraremos el
nombre, apellidos, alta del empleado, pago de nmina, etc.
Todos los elementos que forman parte de un objeto componen la clase del
objeto. Una clase consiste en el conjunto de especificaciones que permiten
crear los objetos; en el caso expuesto por el ejemplo anterior sera la clase
Empleado.
Como acabamos de comprobar, las motivaciones que han llevado al
desarrollo de la POO son facilitar una mejor organizacin y clasificacin del
cdigo, que la proporcionada por la programacin procedural tradicional;
aproximando al mismo tiempo, el modo de programar a la manera en que
nuestra mente trabaja para aplicar soluciones a los problemas planteados.

Visual Basic .NET - Avanzado

-8-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

DEFINICIN DE OBJETOS
Un objeto es una agrupacin de cdigo, compuesta de propiedades y
mtodos, que pueden ser manipulados como una entidad independiente.
Las propiedades definen los datos o informacin del objeto, permitiendo
consultar o modificar su estado; mientras que los mtodos son las rutinas
que definen su comportamiento.
Un objeto es una pieza que se ocupa de desempear un trabajo concreto
dentro de una estructura organizativa de nivel superior, formada por
mltiples objetos, cada uno de los cuales ejerce la tarea particular para la
que ha sido diseado.

DEFINICIN DE CLASES
Una clase no es otra cosa que el conjunto de especificaciones o normas que
definen cmo va a ser creado un objeto de un tipo determinado; algo
parecido a un manual de instrucciones conteniendo las indicaciones para
crear el objeto.
Los trminos objeto y clase son utilizados en OOP con gran profusin y en
contextos muy similares, por lo que para intentar aclarar en lo posible
ambos conceptos, diremos que una clase constituye la representacin
abstracta de algo, mientras que un objeto constituye la representacin
concreta de lo que una clase define.
La clase determina el conjunto de puntos clave que ha de cumplir un objeto
para ser considerado perteneciente a dicha clase o categora, ya que no es
obligatorio que dos objetos creados a partir de la misma clase sean
exactamente iguales, basta con que cumplan las especificaciones clave de la
clase.
Expongamos ahora las anteriores definiciones mediante un ejemplo preciso:
un molde para crear figuras de cermica y las figuras obtenidas a partir del
molde. En este caso, el molde representara la clase Figura, y cada una de
las figuras creadas a partir del molde, sera un objeto Figura. Cada objeto
Figura tendr una serie de propiedades comunes: tamao y peso iguales; y
otras propiedades particulares: un color distinto para cada figura.
Aunque objetos distintos de una misma clase pueden tener ciertas
propiedades diferentes, deben tener el mismo comportamiento o mtodos.
Para explicar mejor esta circunstancia, tomemos el ejemplo de la clase
Coche; podemos crear dos coches con diferentes caractersticas (color,
tamao, potencia, etc.), pero cuando aplicamos sobre ellos los mtodos
Arrancar, Acelerar o Frenar, ambos se comportan o responden de la misma
manera.
El proceso por el cual se obtiene un objeto a partir de las especificaciones
de una clase se conoce como INSTANCIACIN de objetos. Siguiendo con
ejemplo del molde y las figuras; en dicha imagen vemos un molde para

Visual Basic .NET - Avanzado

-9-

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

fabricar figuras rectangulares, donde la clase Figura estara representada


por el molde, y cada uno de los objetos Figura (iguales en forma pero con la
propiedad Color distinta), representara una instancia de la clase.

Ejemplo: El formulario Visual Basic .NET con el que hemos estado


trabajando es un buen ejemplo de abstraccin. Las propiedades esenciales
de un formulario, como el ttulo y color de fondo, se han abstrado en la
clase Form. Algunas operaciones esenciales que se han abstrado son abrir,
cerrar y minimizar.
Las clases utilizan encapsulacin para garantizar que se cumple una
abstraccin.
La encapsulacin es el empaquetamiento de atributos y funcionalidades
para crear un objeto que esencialmente es una caja negra (cuya
estructura interna permanece privada). Empaquetamos los detalles de la
abstraccin y proporcionamos acceso slo a los elementos que necesitan
estar accesibles.
Lo que ve el usuario:

Lo que est encapsulado:


//verify language
//authenticate PIN
//validate account bal
//adjust account bal

Clase

Objeto

12
123
245

Visual Basic .NET - Avanzado

- 10 -

Objeto

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

CREAR UNA CLASE


Volvamos al ejemplo expuesto al comienzo de este tema, en el cul,
habamos dejado a nuestro programador desarrollando los procesos de un
empleado dentro de una aplicacin de gestin empresarial. Recordemos que
se planteaba el problema de que ante el crecimiento del programa, el
mantenimiento del cdigo, al enfocarse de modo procedural, poda volverse
una tarea realmente difcil.
Vamos a replantear este diseo, encauzndolo bajo una perspectiva
orientada a objeto, que nos permita un uso ms sencillo del cdigo y un
mantenimiento tambin ms fcil. Para lo cual desarrollaremos una clase
que contenga todas las operaciones a realizar por el empleado; en
definitiva, crearemos la clase Empleado, cuyo proceso describiremos a
continuacin.
Opcin 01:
Podemos escribir una clase en VB.NET utilizando diferentes tipos de
aplicacin, en este caso emplearemos una aplicacin de consola.
Iniciaremos en primer lugar VS.NET, creando un proyecto de tipo consola.
Crear un proyecto en Visual Basic .NET.
En el men Proyecto, hacer clic en Agregar clase.
En el cuadro Agregar nuevo elemento, escribir el nombre de la nueva
clase y hacer clic en Abrir.
El Editor de cdigo proporciona instrucciones de programacin.
Opcin 02:

Visual Basic .NET - Avanzado

- 11 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Y escribimos el nombre:

El resultado sera:

Tras agregar una nueva clase a nuestro proyecto, podemos agregar


miembros de datos a la clase. Un miembro de datos especfico para una
instancia de la clase se denomina miembro de datos de una instancia.
Cuando agregamos miembros de datos de una instancia a una clase,
especificamos el nivel de acceso estableciendo los modificadores de acceso.
Los miembros de datos de una instancia incluyen variables y constantes
miembro. Las variables miembro tambin se denominan campos.

CREACIN DE CAMPOS PARA LA CLASE


Un campo de una clase no es otra cosa que una variable, generalmente con
mbito pblico, accesible desde el exterior de la clase. El Cdigo fuente 205
muestra la creacin de un campo para la clase Empleado.

Visual Basic .NET - Avanzado

- 12 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 01:

En el siguiente ejemplo, se agrega a la clase un miembro de datos de tipo


Double denominado saldo:

MTODOS
Podemos agregar mtodos a una clase. Cuando agregamos mtodos,
especificamos el nivel de acceso estableciendo el modificador de acceso. Los
mtodos incluyen funciones y procedimientos Sub.
En el siguiente ejemplo, se agrega a la clase un mtodo denominado
Deposito:

En este ejemplo, el mtodo Deposito es pblico, por tanto los usuarios de


esta clase pueden depositar dinero en una cuenta utilizando el mtodo
Deposito.

INSTANCIAR UNA CLASE


Para ejecutar los mtodos y utilizar las propiedades de una clase, debemos
crear una instancia de la clase. La instancia de una clase se denomina
objeto.
Para crear una instancia de una clase, en la Ventana de Cdigo del
Formulario, declaramos una variable del tipo de la clase y utilizamos la
palabra clave New, como se muestra en la siguiente lnea de cdigo:

Visual Basic .NET - Avanzado

- 13 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Una vez declarado el objeto, podemos utilizar el mtodo respectivo:


Al hacer clic en Depositar se debe agregar al saldo de la cuenta el monto
ingresado.
Referencia al Mtodo Deposito:

Asignar el monto para Deposito:

Aplicacin 02:
Para explicar la creacin de clases usaremos un ejemplo sencillo basado en
una clase principal "bicicleta".
Para crear una clase debemos definir sus propiedades y sus mtodos, en
este ejemplo se usan los siguientes trminos como propiedades de la clase
bicicleta: Modelo, Precio, NumeroVelocidades y Velocidad:

Visual Basic .NET - Avanzado

- 14 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Como mtodos de
ConsultarVelocidad().

la

clase

se

usan:

Acelerar(km),

Frenar()

Nuestra clase bicicleta consta de varias propiedades y mtodos, las palabras


Private y Public definen la accesibilidad de las propiedades, funciones o
subrutinas. La definicin de una propiedad o mtodo de tipo privado indica
que slo podr ser usada dentro del cdigo de la misma clase, si cresemos
un objeto de tipo bicicleta, las especificaciones de la clase no nos
permitiran acceder a la propiedad velocidad para consultarla o modificarla,
ya que est definida como privada. En cambio se pueden usar las subrutinas
Acelerar() y Frenar() ya que son de tipo Public, y desde dentro de ellas se
interacta con las propiedades privadas, con esto conseguimos encapsular
el
cdigo
y
hacer
accesible
solo
aquello
que
queramos.
Una vez est construida la clase ya se pueden instanciar objetos de la
misma.

Visual Basic .NET - Avanzado

- 15 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Cdigo completo:

Tras la creacin del objeto objBicicleta a partir de la clase, se pueden


modificar los valores de las propiedades de tipo Public, y llamar a los
mtodos de tipo Public.
En el ejemplo se llama a los mtodos Acelerar(), pasndole el numero de
km que queremos acelerar a travs del parmetro "km" que est definido
en la subrutina.
Luego se llama al mtodo Frenar() que decrementa en una unidad el valor
de la propiedad Velocidad.
Por ltimo se usa la funcin ConsultarVelocidad(), que retorna el valor de la
propiedad Velocidad para introducirlo en la variable VelocidadActual.

PROPIEDADES
Una propiedad en la clase se define, por norma general, mediante dos
elementos: una variable de propiedad y un procedimiento de propiedad.
La variable de propiedad, tal y como su nombre indica, es una variable con
mbito privado a nivel de la clase, que se encarga de guardar el valor de la
propiedad. Por su parte el procedimiento de propiedad o Property, es el
encargado de actuar de puente entre el cdigo cliente y la variable de
propiedad, realizando las operaciones de acceso y asignacin de valores a
dicha variable. Por lo tanto, para crear una propiedad en nuestra clase,
declararemos en primer lugar una variable Private, y en segundo lugar un
procedimiento de tipo Property, que consta de dos bloques: Get, para
devolver el valor de la variable de propiedad; y Set, para asignrselo.
Aplicacin 03:
Se debe declarar una variable de propiedad para la propiedad Categora:

Visual Basic .NET - Avanzado

- 16 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Se debe declarar el procedimiento Property para la propiedad Categora

Cuando declaramos un procedimiento Property, debemos, al igual que en


una funcin, tipificarlo, ya que una de sus labores consiste en la devolucin
de un valor.
Para devolver el valor, en el bloque Get podemos utilizar la palabra clave
Return, seguida del valor de retorno, o bien la sintaxis clsica de asignar el
valor al nombre de la funcin. Nuestra recomendacin es el uso de Return
por las ventajas explicadas en el tema del lenguaje.
En cuanto a la asignacin de valor, el bloque Set utiliza un parmetro con el
nombre Value, que contiene el valor para asignar a la propiedad.
Al declarar un procedimiento de este tipo, el IDE de VS.NET crea
automticamente los correspondientes bloques Get y Set, ahorrando ese
trabajo al programador.
A la hora de manipular una propiedad desde el cdigo cliente, la diferencia
no ser notoria, como muestra el Cdigo siguiente. La nica forma de hacer
ms patente el uso del procedimiento Property, consiste en ejecutar el
programa utilizando el depurador; de esta manera comprobaremos como el
flujo de la ejecucin salta a los bloques Get y Set al manejar la variable del
objeto.

Visual Basic .NET - Avanzado

- 17 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Dado que los procedimientos Property no son otra cosa que rutinas de
cdigo, tambin se les denomina mtodos de acceso y asignacin en el
ambiente de POO.

ENCAPSULACIN A TRAVS DE PROPIEDADES


Una de las caractersticas de la OOP, la encapsulacin, establece que el
cdigo de una clase debe permanecer, siempre que sea posible, protegido
de modificaciones no controladas del exterior (cdigo cliente). Nuestra clase
debe actuar como una especie de caja negra, que expone un interfaz para
su uso, pero que no debe permitir el acceso a la implementacin de dicho
interfaz.
Supongamos que en nuestra clase Empleado en la Aplicacin 03,
necesitamos crear un elemento para guardar el sueldo pagado, pero el
importe del sueldo deber estar entre un rango de valores en funcin de la
categora del empleado. Si la categora es 1, el sueldo estar entre 1 y 200,
mientras que si la categora es 2, el sueldo podr llegar hasta 300.
Si usamos la clase Empleado tal como hemos estudiado hasta ahora, no
estar validado el sueldo segn la categora.

Para resolver el problema mediante el uso de propiedades, contamos con la


ventaja de escribir cdigo de validacin en los correspondientes
procedimientos Property; con ello encapsulamos el cdigo de la clase,
mantenindolo a salvo de asignaciones incoherentes.

Visual Basic .NET - Avanzado

- 18 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

PROPIEDADES DE SLO LECTURA O SLO ESCRITURA


Se nos plantea ahora un nuevo caso para nuestra clase Empleado: debemos
guardar el valor del cdigo de cuenta bancaria del empleado en el objeto,
pero sin permitir que dicha informacin sea accesible desde el cdigo
cliente.
Igualmente y en funcin de los primeros dgitos de la cuenta bancaria,
necesitamos mostrar el nombre de la entidad, pero sin permitir al cdigo
cliente su modificacin, ya que esta va a ser siempre una operacin que
debe calcular el cdigo de la clase.
Utilizando campos de clase no es posible resolver esta situacin, ya que al
ser de mbito pblico, permiten tanto la escritura como lectura de sus
valores.
Pero si empleamos propiedades, estas nos permiten la creacin de las
denominadas propiedades de slo lectura o slo escritura, en las que
utilizando las palabras clave ReadOnly y WriteOnly, conseguimos que a una
determinada propiedad, slo podamos asignarle o recuperar su valor.

Visual Basic .NET - Avanzado

- 19 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Debido a esto, en una propiedad ReadOnly no podremos escribir el bloque


Set, ya que no tendra sentido, puesto que no se va a utilizar. Lo mismo
podemos aplicar para una propiedad WriteOnly, slo que en esta, el bloque
que no podremos codificar ser Get.
Igualmente obtendremos un error del compilador, si en el cdigo cliente
intentamos asignar un valor a una propiedad ReadOnly, u obtener un valor
de una propiedad WriteOnly.
Aplicacin 04:
Crear la siguiente clase:

La clase sera utilizada desde el Botn Aceptar.

Visual Basic .NET - Avanzado

- 20 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al invocar el cdigo, tendramos:

Visual Basic .NET - Avanzado

- 21 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 2
TRABAJANDO
CON EVENTOS EN
WINDOWS FORM

Al finalizar la Sesin usted ser capaz de:


Competencias

Implementa mdulos, clases y componentes que permitan elaborar


programas en n-capas.
Procedimentales:

Disea e implementa aplicaciones usando los controles Windows


forms y valida los inicios de sesin.
Competencias Actitudinales:

Valora el uso de inicio de sesin en las aplicaciones Windows.

Visual Basic .NET - Avanzado

- 22 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

EVENTOS EN WINDOWS FORM


QU ES UN EVENTO?
Un evento es un suceso o situacin, que acontece en una ubicacin de
espacio y tiempo no predecible.
Cuando una mquina deja de funcionar por una avera, o cuando una
persona resbala y cae, estamos en ambos casos, ante ejemplos de eventos,
ya que ocurren en momentos inesperados.
Para que se desencadene un evento, se deben dar determinadas
circunstancias, las cuales favorecen el que dicho evento se produzca.
Cindonos al mbito de la programacin, un evento es, dentro de una
aplicacin, una notificacin lanzada por un objeto, que podr ser respondida
por aquellos otros objetos interesados en darle soporte.
Antes de la llegada de los sistemas y lenguajes orientados a eventos, las
aplicaciones ejecutaban su cdigo en un orden fijo, ya que estaban basadas
en un modelo construido exclusivamente a base de procedimientos: se
realizaban llamadas a las rutinas de cdigo en un orden predeterminado, y
una vez terminada la ejecucin de tales rutinas, finalizaba la aplicacin.
Veamos el siguiente ejemplo:
Aplicacin 04:
Supongamos que nos encargan desarrollar una clase llamada Empleado,
entre cuyos miembros tenemos la propiedad Sueldo.
Uno de los requerimientos respecto a esta propiedad es que su valor no
debe ser superior a 1000; por ello, en su procedimiento Property,
realizamos una validacin a tal efecto, emitiendo un mensaje cuando el
sueldo que asignemos sea superior.

Visual Basic .NET - Avanzado

- 23 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Una vez finalizado el desarrollo de la clase, la distribuimos a nuestro cliente.


Posteriormente, un nuevo cliente nos requiere la clase, pero en esta
ocasin, aunque necesita la validacin sobre la propiedad
Sueldo, no quiere que se muestre el mensaje al sobrepasar el sueldo
asignado.
Se nos plantea en este caso un problema, ya que si escribimos una nueva
versin de la clase Empleado, tendremos el trabajo extra de mantener
ambas. Para solucionarlo mediante una nica versin de la clase
recurriremos a los eventos.

PROGRAMACIN BASADA EN EVENTOS


La aparicin de Windows trajo consigo un nuevo esquema en el desarrollo
de aplicaciones. En un programa que se ejecute dentro de un sistema
basado en eventos como pueda ser Windows, se estn produciendo
constantemente eventos (sucesos), provocados por las acciones del usuario
o por el propio sistema. Tan elevado es el nmero de eventos que se
producen, que dar respuesta a todos, es decir, codificar todas aquellas
situaciones que acontecen a lo largo de la ejecucin de un programa, es
algo impensable.
Por tal motivo, la tcnica seguida al escribir cdigo orientado a eventos, se
basa en codificar slo los eventos que nos interese tratar, ya que para el
resto, ser el propio sistema quien proporcione el comportamiento por
defecto.
En una aplicacin Windows tpica, todos los elementos que forman parte de
la misma, es decir, el propio formulario y los controles contenidos en l,
lanzan eventos en respuesta a las acciones del usuario. El ejemplo ms
habitual: al pulsar un botn, se produce su evento clic; si queremos que el
programa realice alguna accin al pulsar dicho botn, deberemos escribir
cdigo en el procedimiento de evento asociado, para dar respuesta a tal
suceso.

Visual Basic .NET - Avanzado

- 24 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

ESQUEMA BSICO DE UN SISTEMA ORIENTADO A EVENTOS


Un sistema conducido por eventos basa su funcionamiento en dos pilares
fundamentales: un emisor y un receptor de eventos.
El primero genera y lanza el evento al sistema, mientras que el segundo, si
est interesado en tratar el evento lanzado, lo captura y le da respuesta. Si
un objeto receptor no necesita gestionar eventos, simplemente no lo
obtiene.

EL EMISOR DE EVENTOS
Un emisor de eventos, tambin denominado origen de eventos (event
source o event sender), es un objeto capacitado para generar y lanzar
eventos al sistema, que puedan ser recuperados por otros objetos
preparados para realizar su tratamiento.
Para que un objeto pueda desencadenar eventos, en su clase debemos
realizar dos tareas:
Declarar el propio evento usando la palabra clave Event, especificando si
es necesario una lista de parmetros que acompaan al evento.
Lanzar el evento mediante la palabra clave RaiseEvent, seguida del
nombre del evento a disparar. Si hemos declarado el evento con
parmetros, deberemos aadir los valores para cada uno de los
parmetros en el mismo orden en el que los hemos declarado.
Situndonos pues ante el problema planteado por la clase Empleado en un
apartado anterior, la solucin que proponemos consistir en generar desde
la clase Empleado un evento cuando se produzca un fallo en la validacin
del sueldo. De esta manera, el cdigo cliente que lo necesite, responder al
evento; y el que no lo precise, har caso omiso del evento lanzado.
En primer lugar, declaramos en la zona de declaraciones de la clase el
evento LimiteSueldo, que ir acompaado de un parmetro que nos
informar del importe errneo que se intentaba asignar a la propiedad.
A continuacin, en la propiedad Sueldo, cuando detectemos que el sueldo
sobrepasa el valor permitido, en lugar de mostrar el mensaje de Error,

Visual Basic .NET - Avanzado

- 25 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

generaremos el evento LimiteSueldo, que podr ser recuperado por el


cdigo cliente que haga uso de la clase, actuando como necesite en cada
ocasin. Ntese que al mismo tiempo que lanzamos el evento, le pasamos
el importe del sueldo que se intentaba asignar.
Agregamos la siguiente lnea, declarando el evento respectivo:

Modificamos la Propiedad Sueldo:

Con estas modificaciones sobre la clase Empleado, ya tenemos listo nuestro


emisor de eventos. Queda ahora por completar la parte que captura los
eventos lanzados por el emisor

EL RECEPTOR DE EVENTOS
Un receptor de eventos, tambin denominado manipulador de eventos
(event receiver o event handler), es aquella parte del cdigo cliente, que
configuramos para que sea capaz de recibir los eventos generados por un
objeto emisor. Para que ambos elementos, en este canal de comunicacin
que es la transmisin de eventos puedan operar, es necesario conectarlos.

CONEXIN CON UN MANIPULADOR DE EVENTOS


Existen dos medios para comunicar un evento con un manipulador de
eventos:
En tiempo de compilacin, realizando un enlace esttico entre la clase y
el manipulador mediante las palabras clave WithEvents y Handles. Esta

Visual Basic .NET - Avanzado

- 26 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

tcnica tiene la ventaja de que permite escribir un cdigo mucho ms


legible, en cuanto a la manipulacin de eventos se refiere.
En tiempo de ejecucin, realizando un enlace dinmico entre la clase y
el manipulador mediante la palabra clave AddHandler. La ventaja en este
caso, es que podemos asociar procedimientos manipuladores de evento
dinmicamente durante el transcurso de la ejecucin del programa.

ENLACE ESTTICO DE EVENTOS


Este es el modo ms sencillo para implementar la conexin entre un evento
y un procedimiento manipulador de evento.
En primer lugar, declaramos una variable del tipo de objeto cuyos eventos
queremos capturar, en la zona de declaraciones del mdulo, clase, etc.,
utilizando la palabra clave WithEvents.

A continuacin, tenemos que escribir el procedimiento manipulador, que


ser invocado cada vez que se dispare el evento. Dicho procedimiento debe
ser de tipo Sub, ya que un evento no puede devolver valores, por lo que no
podremos utilizar un Function; tambin debemos finalizar su declaracin
con la palabra clave Handles, seguida del nombre de la variable del objeto
que hemos declarado en la zona de declaraciones, y el nombre del evento
que el procedimiento va a tratar.
Para nuestra Aplicacin, el procedimiento Emple_LimiteSueldo( ), ser
llamado cada vez que se produzca el evento LimiteSueldo en el objeto
Empleado.

El nombre utilizado para el procedimiento puede ser cualquiera, aunque en


este caso hemos empleado la convencin NombreObjeto_NombreEvento
simplemente para facilitar la lectura del cdigo, pero podramos haber
utilizado:

Visual Basic .NET - Avanzado

- 27 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

NOTA:
Para facilitar la creacin de los procedimientos manipuladores de evento,
consiste en abrir la lista Nombre de clase y seleccionar el nombre de la
variable que hemos declarado WithEvents:

Luego pasamos a la lista Nombre de mtodo, y all elegimos el nombre del


evento que vamos a programar:

Esto nos crea el procedimiento manipulador de evento vaco, en base a una


convencin de nombres predefinida en el IDE.

Como hemos escrito el manipulador de evento para el objeto Empleado en


un mdulo, vamos ahora a probar la aplicacin, instanciando en el mismo,
un objeto de esta clase.
Asignaremos en primer lugar, un valor correcto a la propiedad Sueldo, y a
continuacin un valor que provocar el evento en la clase. Se Recomienda
ejecutar el cdigo lnea a lnea con el depurador, para observar el efecto
cuando se produzca el evento.

Visual Basic .NET - Avanzado

- 28 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

CAJAS DE DILOGO EN APLICACIONES WINDOWS


Aplicacin 05:

MsgBox
Muestra un mensaje al usuario, acompaado del Botn Aceptar.

InputBox
Solicita ingreso de datos al usuario.

MessageBox
Muestra un mensaje al usuario, y espera la respuesta del usuario para
poder ejecutar alguna accin.

Visual Basic .NET - Avanzado

- 29 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

VALIDAR ENTRADAS DE USUARIO


Aplicacin 06:

Programar el evento Validating:

Cdigo:

Visual Basic .NET - Avanzado

- 30 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 3
INTRODUCCIN
A ADO .NET

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Desarrolla programas con controles de enlace a datos.
Procedimentales:

Identifica la arquitectura ADO .NET y reconoce los objetos de


conexin a base de datos.
Disea e implementa la conexin de sus formularios a la base de
datos
Actitudinales:

Comprende la arquitectura ADO .NET y la necesidad de utilizar


objetos de conexin a datos.

Visual Basic .NET - Avanzado

- 31 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

ACCESS DATA OBJECT EN VISUAL BASIC.NET


TERMINOLOGA DE BASE DE DATOS
Para trabajar con bases de datos, es importante conocer cierta terminologa
bsica.
Los siguientes trminos se definen en el contexto de las bases de datos
relacionales.
Base de datos relacional:
Una base de datos relacional es un tipo de base de datos que almacena
informacin en tablas. Las bases de datos relacionales utilizan valores
coincidentes de dos tablas para relacionar datos en una tabla con datos de
otra. En una base de datos relacional, normalmente almacenamos un tipo
especfico de datos slo una vez.
Tabla:
Una tabla es un objeto base de datos que almacena datos en registros
(filas) y campos (columnas). Normalmente, los datos tienen relacin con
una categora concreta de cosas, como empleados o pedidos.
Registro:
Un registro es una coleccin de datos sobre una persona, un lugar, un
evento o algn otro elemento. Los registros son los equivalentes lgicos de
filas en una tabla. Por ejemplo, un registro en la tabla Empleados debera
tener informacin sobre un empleado particular.
Campo:
Un registro est compuesto de varios campos. Cada campo de un registro
contiene una pieza de informacin sobre el registro. Por ejemplo, el registro
de un Empleado tiene campos para el ID del empleado, Apellido, Nombre,
etc.
Clave principal:
Una clave principal identifica de modo nico cada fila de una tabla. La clave
principal es un campo o una combinacin de campos cuyo valor es nico
para cada fila (o registro) de la tabla. Por ejemplo, el campo Employee ID
es la clave primaria para la tabla Empleados. No puede haber dos
empleados con el mismo ID.
Clave fornea:
Una clave fornea es uno o ms campos (columnas) de una tabla que hacen
referencia al campo o campos de la clave principal de otra tabla. Una clave
fornea indica cmo estn relacionadas las tablas.

Visual Basic .NET - Avanzado

- 32 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Relacin:
Una relacin es una asociacin establecida entre campos comunes
(columnas) de dos tablas. Una relacin puede ser de uno a uno, de uno a
muchos, o de muchos a muchos. Las relaciones permiten que los resultados
de las consultas incluyan datos de varias tablas. Una relacin uno a uno
entre una tabla Clientes y una tabla Pedidos permitira que una consulta
devolviera todos los pedidos de un determinado cliente.
Acceso de slo lectura:
El acceso de slo lectura a una base de datos significa que podemos
recuperar (leer) los datos pero no podemos modificarlos (escribir). Un
archivo de slo lectura o un documento puede visualizarse o imprimirse
pero no puede modificarse de ningn modo.
Acceso de lectura/escritura:
El acceso de lectura/escritura a una base de datos significa que podemos
recuperar (leer) los datos y modificarlos (escribir).
Programacin De Base De Datos:

Cuando desarrollamos aplicaciones, tenemos diferentes requerimientos para


trabajar con datos. En algunos casos, simplemente desearemos mostrar
datos en un formulario. En otros casos, es posible que necesitemos crear
una forma de compartir informacin con otra organizacin.
Cuando trabajamos con datos, utilizamos varios objetos para recuperar y
modificar informacin de una base de datos.
En general, cuando trabajamos con bases de datos en ADO.NET, realizamos
las siguientes tareas:

Visual Basic .NET - Avanzado

- 33 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Conectar a una base de datos.


Solicitar datos especficos. Especificar los datos que se desean recuperar
y si se necesita acceso de solo lectura o de lectura/escritura a los datos.
Recuperar y mostrar los datos.
Cerrar la conexin (en algunas aplicaciones).
Modificar los datos recuperados (si se dispone
lectura/escritura).
Volver a abrir la conexin (en algunas aplicaciones).

de

acceso

de

Transmitir a la base de datos los cambios realizados en los datos.


Cerrar la conexin.

CONCEPTO
ADO .NET es la nueva versin del modelo de objetos ADO (ActiveX Data
Objects), es decir, la estrategia que ofrece Microsoft para el acceso a datos.
ADO .NET ha sido ampliado para cubrir todas las necesidades que ADO no
ofreca, y est diseado para trabajar con conjuntos de datos
desconectados, lo que permite reducir el trfico de red. ADO .NET utiliza
XML como formato universal de transmisin de los datos.
ADO .NET posee una serie de objetos que son los mismos que aparecen en
la versin anterior de ADO, como pueden ser el objeto Connection o
Command, e introduce nuevos objetos tales como el objeto DataReader,
DataSet o DataView.
ADO .NET se puede definir como:
Un conjunto de interfaces, clases, estructuras y enumeraciones que
permiten el acceso a datos desde la plataforma .NET de Microsoft
La evolucin lgica del API ADO tradicional de Microsoft
Permite un modo de acceso desconectado a los datos, los cuales pueden
provenir de mltiples fuentes de datos, de diferente arquitectura de
almacenamiento.
Soporta un completo modelo de programacin y adaptacin, basado en
el estndar XML

Visual Basic .NET - Avanzado

- 34 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

ARQUITECTURA DE ADO .NET

ENTORNO CONECTADO O DESCONECTADO


Microsoft a puesto en su lista de prioridades para ADO.NET el que cada vez
los desarrolladores puedan escribir aplicaciones ms y ms escalables, y
para hacerlo debemos reducir al mximo el nmero de conexiones
abiertas en la base de datos. No es ningn secreto que en ADO el mejor
rendimiento se obtena manteniendo una conexin abierta a la fuente de
datos, sin embargo, en ADO.NET, gracias a los DataSets es posible tomar
una parte de los datos y mantenerlos en memoria en forma relacional, tal
cual son almacenados. Esto permite brindarle datos a la aplicacin cliente
sin sacrificar el rendimiento al mantener conexiones abiertas a la base de
datos.

DATASET
El API de ADO .NET proporciona una superclase, DataSet, que encapsula lo
que sera la base de datos a un nivel lgico: tablas, vistas, relaciones,
integridad entre todos ellos, etc., pero siempre con independencia del tipo
de fabricante que la dise. Aqu se tiene el mejor concepto de datos
desconectados: una copia en el cliente de la arquitectura de la base de
datos, basada en un esquema XML que la independiza del fabricante,
proporcionando al desarrollador la libertad de trabajo independiente de la
plataforma.
Un DataSet es una cach de registros recuperados de una base de datos
que acta como un sistema de almacenamiento virtual, y que contiene una
o ms tablas basadas en las tablas reales de la base de datos.
Adicionalmente, almacena las relaciones y reglas de integridad existentes
entre ellas para garantizar la estabilidad e integridad de la informacin de la

Visual Basic .NET - Avanzado

- 35 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

base de datos. Muy importante es recalcar, que los DataSets son almacenes
pasivos de datos, esto es, no se ven alterados ante cambios subyacentes de
la base de datos. Es necesario recargarlos siempre que queramos estar al
da, en cuanto a datos se refiere.
Los DataSets son un concepto realmente revolucionario y si precedentes.
Son, bsicamente, representaciones en memoria de algo ms que una
simple tabla, es posible verlo como una porcin de base de datos en la
memoria de la PC del cliente, el cual puede contener tablas, relaciones e
incluso hasta constraints (primary keys, foreign keys, uniques). La idea
detrs de esto es que la aplicacin cuente con todos los datos necesarios
para poder trabajar, y por ninguna razn requiera conectarse a la base de
datos, salvo para cargar o actualizar los cambios generaron en el DataSets
La Figura siguiente muestra una representacin de este tipo de objeto.

COMPONENTES DE ADO.NET
Los componentes de ADO.NET han sido diseados para separar el acceso a
datos de la manipulacin de los datos. Existen dos componentes principales
de ADO.NET que lo cumplen: el componente DataSet y los Proveedores de
datos .NET. Los proveedores de datos .NET constan de un conjunto de
componentes que incluyen los objetos Connection, Command, DataReader y
DataAdapter. Los componentes del proveedor de datos .NET estn
diseados explcitamente para la manipulacin de datos desconectados.
ADO.NET y Windows Forms proporcionan componentes para el consumidor
de datos que podemos utilizar para mostrar nuestros datos. Incluyen
controles como DataGrid, que pueden ser enlazados a datos, y propiedades
de enlace a datos en la mayora de controles estndares de Windows, como
los controles TextBox, Label, ComboBox y ListBox.
El .NET Framework incluye numerosos proveedores de datos .NET,
incluyendo el proveedor de datos de .NET para SQL Server, el proveedor de
datos de .NET OLE DB para SQL, y el proveedor OLE DB para Microsoft Jet.
Si necesitamos un proveedor personalizado, podemos escribir proveedores
de datos .NET para cualquier fuente de datos.

Visual Basic .NET - Avanzado

- 36 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

OBJETOS COMUNES DE ADO.NET


Los proveedores de datos de .NET y el espacio de nombres System.Data
proporcionan los objetos ADO.NET que utilizaremos en un escenario
desconectado.

ESPACIOS DE NOMBRES Y CLASES EN ADO .NET


Los distintos espacios de nombres que constituyen la tecnologa ADO .NET:
System.Data: Clases genricas de datos de ADO .NET. Integra la gran
mayora de clases que habilitan el acceso a los datos de la
arquitectura .NET.
System.Data.SqlClient: Clases del proveedor de datos de SQL Server.
Permite el acceso a proveedores SQL Server en su versin 7.0 y
superior.
System.Data.OleDb: Clases del proveedor de datos de OleDB. Permite
el acceso a proveedores .NET que trabajan directamente contra
controladores basados en los ActiveX de Microsoft.
System.Data.SqlTypes: Definicin de los tipos de datos de SQL Server.
Proporciona la encapsulacin en clases de todos los tipos de datos
nativos de SQL Server y sus funciones de manejo de errores, ajuste y
conversin de tipos, etc.
System.Data.Common: Clases base, reutilizables de ADO .NET.
Proporciona la coleccin de clases necesarias para acceder a una fuente
de datos (como por ejemplo una Base de Datos).
System.Data.Internal: Integra el conjunto de clases internas de las
que se componen los proveedores de datos.
Dentro del espacio de nombres System.Data encontramos las siguientes
clases compartidas, que constituyen el eje central de ADO .NET.

Visual Basic .NET - Avanzado

- 37 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

DataSet: Almacn de datos por excelencia en ADO .NET. Representa


una base de datos desconectada del proveedor de datos. Almacena
tablas y sus relaciones.
DataTable: Un contenedor de datos. Estructurado como un conjunto de
filas (DataRow) y columnas (DataColumn).
DataRow: Registro que almacena n valores. Representacin en ADO
.NET de una fila/tupla de una tabla de la base de datos.
DataColumn: Contiene la definicin de una columna. Metadatos y datos
asociados a su dominio.
DataRelation: Enlace entre dos o ms columnas iguales de dos o mas
tablas.
Constraint: Reglas de validacin de las columnas de una tabla.
DataColumnMapping: Vnculo lgico existente entre una columna de
un objeto del DataSet y la columna fsica de la tabla de la base de datos.
DataTableMapping: Vnculo lgico existente entre una tabla del
DataSet y la tabla fsica de la base de datos.

OBJETOS ADO. NET


ADO.NET proporciona un modelo de objetos comn para proveedores de
datos de .NET. La siguiente tabla describe los principales objetos ADO.NET
que utilizaremos en un escenario desconectado.
OBJETO
Connection
Command

DataSet

DataReader
DataAdapte
r

DESCRIPCIN
Establece y gestiona una conexin a una fuente de datos
determinado. Por ejemplo, la clase sqlConnection se
conecta a fuentes de datos SQL.
Ejecuta un comando en una fuente de datos. Por ejemplo,
la clase sqlCommand ejecutar instrucciones SQL.
Diseado para acceder a datos con independencia de la
fuente de datos. En consecuencia, podemos utilizarlo con
varias y diferentes fuentes de datos, con datos XML, o
para gestionar datos locales a la aplicacin. El objeto
DataSet contiene una coleccin de uno o ms objetos
DataTable formados por filas y columnas de datos,
adems de clave principal, clave fornea, restricciones e
informacin de la relacin sobre los datos en los objetos
DataTable.
Proporciona un flujo de datos eficaz, slo-reenvo y de
slo-lectura desde una fuente de datos.
Utiliza los objetos Connection, Command y DataReader
implcitamente para poblar un objeto DataSet y para
actualizar la fuente de datos central con los cambios
efectuados en el DataSet.

Visual Basic .NET - Avanzado

- 38 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

PROVEEDORES DE DATOS DE .NET


Un proveedor de datos de .Net sirve para conectarse a una base de datos,
ejecutar comandos y recuperar resultados. Esos resultados se procesan
directamente o se colocan en un DataSet de ADO.NET con el fin de
exponerlos al usuario para un propsito especifico, junto con datos de
varios orgenes o de utilizarlos de forma remota entre niveles. El diseo del
proveedor de datos de .Net hace que sea ligero, de manera que cree un
nivel mnimo entre el origen de datos y su cdigo, con lo que aumenta el
rendimiento sin sacrificar la funcionalidad.
La siguiente figura muestra los componentes de cada proveedor
de
datos .Net
Proveedor de datos .Net
Connection
Base de
Datos

Command
DataReader
DataAdapter

Visual Basic .NET - Avanzado

- 39 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 4
CONEXIN
FUENTES

CON
DE

DATOS

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Desarrolla programas con controles de enlace a datos.
Procedimentales:

Implementa la conexin de sus formularios a la base de datos.


Analiza e identifica la gestin de excepciones de conexin, con la
estructura TRY CATCH.
Actitudinales:

Valora la importancia de la conexin de los formularios a la base de


datos.

Visual Basic .NET - Avanzado

- 40 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

CONEXIN CON FUENTES DE DATOS


CREACIN DE CONEXIONES
Antes de trabajar con datos, es necesario establecer primero una conexin
con una fuente de datos. Para conectar con una fuente de datos, escogemos
el tipo de conexin, especificamos la fuente de datos, y abrimos la conexin
a la fuente de datos. Cuando acabamos de trabajar con los datos,
cerraremos la conexin.
Escoger el tipo de conexin:
Podemos utilizar el objeto Connection para conectar a una fuente de datos
especfica. Podemos utilizar SqlConnection para conectar a bases de
datos SQL Server u OleDbConnection para conectar a otros tipos de
fuentes de datos.
Especificar la fuente de datos:
Despus de escoger el tipo de conexin, utilizamos una propiedad
ConnectionString para especificar el proveedor de datos, la fuente de
datos, y dems informacin utilizada para establecer la conexin. El
formato de estas cadenas difiere ligeramente entre el espacio de
nombres SqlClient y el espacio de nombres OleDb.
Abrir y cerrar la conexin de datos:
El objeto Connection soporta un mtodo Open que abre la conexin despus
de que se hayan establecido las propiedades de la conexin, y un
mtodo Close que cierra la conexin a la base de datos despus de que
todas las transacciones se hayan liberado.
Probar Conexin
El siguiente ejemplo muestra cmo utilizar un objeto Connection, la
propiedad ConnectionString y el mtodo Open para conectarnos a una
base de datos SQL Server utilizando el Data Provider .NET de SQL
Server.
NOTA: Para efectos del ejemplo, crearemos en SQL una Base de Datos
llamada Negocio.

Visual Basic .NET - Avanzado

- 41 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 07:
En Vb .NET, disearemos el siguiente formulario:

Agregar un Mdulo llamado


procedimientos necesarios.

ModDeclaraciones

para

las

variables

La Cadena de Conexin depende del modo de autenticacin del SQL.


Si el SQL est con autenticacin SQL Server, la Cadena est formada por:
Data Source: Servidor de Base de Datos del SQL.
Initial Catalog: Nombre de la Base de Datos en SQL (Negocio).
User Id: Inicio de Sesin que se usar en SQL.
Password: Clave del Inicio de Sesin.

Visual Basic .NET - Avanzado

- 42 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 07.1
Usando Base de Datos Access:

Declarar las Variables:

Declarar la cadena de Conexin:

Navegacin entre registros:

Primer Registro:

Registro Anterior:

Visual Basic .NET - Avanzado

- 43 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Registro Siguiente:

ltimo Registro:

Nuevo Registro:

Guardar Registro:

Cancelar ingreso de datos:

Eliminar registro

Visual Basic .NET - Avanzado

- 44 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

LAS CLASES COMMAND


Establecida una conexin con un almacn de datos, la siguiente operacin
lgica consiste en enviarle sentencias para realizar los distintos tipos de
operaciones que habitualmente realizamos con los datos. Para realizar las
operaciones con datos utilizaremos Las clases Command de ADO .NET.
SqlCommand y OleDbCommand, son muy similares al objeto Command
existente en ADO. El objeto Command nos va a permitir ejecutar una
sentencia SQL o un procedimiento almacenado sobre la Base de Datos a la
que estamos accediendo, para nuestro caso: Negocio.
A travs de un objeto Command tambin podremos obtener un conjunto de
resultados del almacn de datos. En este caso, los resultados se pasarn a
otros objetos de ADO .NET, como DataReader o DataAdapter; estos dos
objetos los comentaremos ms adelante.
Un objeto Command se crea a crear a partir de una conexin existente, y
contiene una sentencia SQL a ejecutarse sobre las tablas de la conexion.
Entre las propiedades que
OleDbCommand, tenemos:

ofrecen

los

objetos

SqlCommand

CommandText: Contiene una cadena de texto que va a indicar la


sentencia SQL o procedimiento almacenado que se va a ejecutar sobre
el origen de los datos.
CommandTimeout: Tiempo de espera en segundos que se va a aplicar
a la ejecucin de un objeto Command. Su valor por defecto es de 30
segundos.
CommandType: Indica el tipo de comando que se va a ejecutar contra
el almacn de datos, es decir, indica cmo se debe interpretar el valor de
la propiedad CommadText.
Puede tener los siguientes valores:
- StoredProcedure: para indicar que se trata de un procedimiento
almacenado.
- TableDirect: se trata de obtener una tabla por su nombre
(nicamente aplicable al objeto OleDbCommand).
- Text: que indica que es una sentencia SQL. EL valor por defecto es
Text.

Visual Basic .NET - Avanzado

- 45 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Connection: Devuelve el objeto SqlConnection u OleDbConnection


utilizado para ejecutar el objeto Command correspondiente.
Parameters: Coleccin de parmetros que se pueden utilizar para
ejecutar el objeto Command, esta coleccin se utiliza cuando deseamos
ejecutar sentencias SQL que hacen uso de parmetros, esta propiedad
devuelve un objeto de la clase SqlParameterCollection o un objeto de la
clase OleDbParameterCollection. Estas colecciones contendrn objetos
de la clase SqlParamter y OleDbParameter, respectivamente, para
representar a cada uno de los parmetros utilizados. Estos parmetros
tambin son utilizados para ejecutar procedimientos almacenados.

MTODOS DE LAS CLASES COMMAND


ExecuteReader: Ejecuta la sentencia SQL definida en la propiedad
CommandText contra la conexin definida en la propiedad connection.
En este caso, la sentencia s devolver un conjunto de registros. El
resultado de la ejecucin de este ser un objeto de la clase
SqldDataReader, que nos va a permitir leer y recorrer los resultados
devueltos por la ejecucin del objeto command correspondiente.
ExecuteNonQuery: Ejecuta la sentencia SQL definida en la propiedad
CommandText contra la conexin definida en la propiedad connection. La
sentencia a ejecutar debe ser de un tipo que no devuelva un conjunto de
registros, por ejemplo Insert, Update, Delete.
ExecuteReader: Ejecuta la sentencia SQL definida en la propiedad
ComandText contra la conexin definida en la propiedad Connection. En
este caso, la sentencia s devolver un conjunto de registros. El
resultado de la ejecucin de este ser un objeto de la clase
SqlDataReader/ OleDbDataReader, que nos va a permitir leer y recorrer
los resultados devueltos por la ejecucin del objeto Command
correspondiente.
ExecuteScalar: Este mtodo se utiliza cuando deseamos obtener la
primera columna de la primera fila del conjunto de registros, el resto de
datos no se tendrn en cuenta. La utilizacin de este mtodo tiene
sentido cuando estamos ejecutando una sentencia SQL del tipo Select
Count (*). Este mtodo devuelve un objeto de la clase genrica Object.
Prepare: Este mtodo construye una versin compilada del objeto
Command dentro del almacn de datos.

Visual Basic .NET - Avanzado

- 46 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

APLICACIONES DE LAS CLASES COMMAND


Para las aplicaciones siguientes crearemos en SQL usaremos la Base de
Datos llamada Negocio creada para la aplicacin anterior, la cual debe
contener la siguiente estructura de tablas.
Cdigo:

Diagrama Final:

Visual Basic .NET - Avanzado

- 47 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

INSERTAR DATOS USANDO SQLCOMMAND


Aplicacin 08:
Insertar Datos en la Tabla Cliente, usando el objeto SQLCommand.
Utilizamos procedimientos y variables pblicas, las cuales las
declararemos en el Mdulo llamado ModDeclaraciones.
Declarar las variables para conexin:

Declarar el procedimiento para conectar a la Base de Datos.

Como vamos a ejecutar una sentencia que no produce un conjunto de


resultados, emplearemos el mtodo ExecuteNonQuery( ).
La conexin slo permanece abierta en el momento de ejecutar el
comando; esta accin es recomendable para todas las operaciones con
datos: mantener abierta la conexin el menor tiempo posible.
Disear el siguiente formulario en la VB .NET.

En el Mdulo ModDeclaraciones, declarar las siguientes variables:

En el Mdulo ModDeclaraciones, declarar el siguiente procedimiento:

Visual Basic .NET - Avanzado

- 48 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al Dar clic en el Botn grabar, capturar los datos de los clientes en sus
respectivas variables, asignar la sentencia SQL, Abrir la Conexin y
ejecutar.

Ejecutar:

Prctica Clase:
Programar el ingreso de Datos para las Tablas Vendedor y Producto.

Visual Basic .NET - Avanzado

- 49 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

RECUPERAR DATOS USANDO DATAREADERS


El beneficio de utilizar un DataSet es que nos ofrece una vista desconectada
de la base de datos. Para aplicaciones de larga ejecucin, es a menudo el
mejor mtodo. Sin embargo, los desarrolladores de aplicaciones con .NET
generalmente realizan operaciones cortas y sencillas con cada peticin,
como visualizar datos. Para estas breves operaciones, generalmente no es
eficiente mantener un objeto DataSet. En tales casos, podemos utilizar un
DataReader.
Crear un DATAREADER
Para minimizar la dificultad de tales situaciones, el DataReader ha sido
diseado para producir un flujo slo-lectura, slo-reenvo que se devuelve
desde la base de datos. nicamente un registro a la vez est siempre en
memoria. Hay dos clases DataReader: SqlDataReader y OleDbDataReader.
Un DataReader mantiene la conexin abierta hasta que se cierra el
DataReader.
Para utilizar un SqlDataReader, declarar un SqlCommand en vez de un
SqlDataAdapter. El SqlCommand expone un mtodo ExecuteReader que
toma un SqlDataReader como parmetro. Observar que cuando utilizamos
un SQLCommand, debemos explcitamente abrir y cerrar SqlConnection.
Sintaxis de parametros que se le pasa al SqlCommand (consulta, conexin).
Gestin de errores con un DATAREADER
Cuando utilizamos conexiones con el objeto DataReader, siempre
deberamos utilizar un bloque Try/Catch para garantizar que, si se lanza
alguna excepcin, las conexiones se cerrarn.
Leer datos de un DATAREADER
Una vez que hemos invocado el mtodo ExecuteReader del objeto
Command, accedemos a un registro en el DataReader invocando el mtodo
Read. La posicin inicial en el DataReader se sita antes del primer registro;
por tanto, debemos invocar a Read antes de acceder a cualquier dato.
Cuando no hay ms registros disponibles, el mtodo Read devuelve False.
Recorrer todos los registros
Para recorrer todos los registros y mostrarlos por la consola en un
DataReader, podemos utilizar un bucle While.
Cerrar el DATAREADER
Mientras que el DataReader est en uso, la conexin asociada est ocupada
sirviendo el DataReader. Por tanto, debemos llamar a Close para cerrar el
DataReader cuando hayamos acabado de utilizarlo.

Visual Basic .NET - Avanzado

- 50 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 09:
Usando la base de datos de la aplicacin anterior, mostrar de los datos de
un cliente segn el cdigo ingresado.

En el Mdulo ModDeclaraciones, declarar las siguientes variables:

Al hacer clic en el Botn Buscar, capturar el cdigo del Cliente que se va


a buscar, asignar la sentencia a usarse y mostrar los datos en las Cajas
de Texto respectivas.

Visual Basic .NET - Avanzado

- 51 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Para mostrar todos los registros de una tabla, se usa el siguiente cdigo.
Aplicacin 10:
Usando la base de datos de la aplicacin anterior, mostrar de los datos de
todos los clientes en un ListView.

En el Mdulo ModDeclaraciones, declarar el ListViewItem.

Al hacer clic en Mostrar Clientes:

Visual Basic .NET - Avanzado

- 52 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 11:
Usando la base de datos de la aplicacin anterior, mostrar de los datos de
un cliente, modificarlos y volver a grabarlos.

Debemos crear en el Mdulo ModDeclaraciones, los procedimientos para


Borrar, Activar y Desactivar las Cajas de texto.

Las cajas de texto se muestran desactivadas, excepto el Cdigo.

Visual Basic .NET - Avanzado

- 53 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Primero se tiene que buscar el cliente de quien se desean modificar sus


datos.

Al dar clic en Modificar, se activan las cajas de texto, desactivndose el


Cdigo.

Visual Basic .NET - Avanzado

- 54 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Se ingresan los nuevos datos y se da Clic en Actualizar y los datos deben


grabarse en la Tabla respectiva.

Prctica Clase:
Programar la bsqueda y actualizacin de datos para las Tablas Vendedor y
Producto.

Visual Basic .NET - Avanzado

- 55 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 12:
Usando la base de datos de la aplicacin anterior, mostrar de los datos de
un cliente, eliminarlo de la Tabla.

Primero se tiene que buscar el cliente de quien se desean modificar sus


datos.

Visual Basic .NET - Avanzado

- 56 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Una vez encontrado el cliente, sus datos sern eliminados de la tabla.

Los datos del cliente sern eliminados de la tabla.

Prctica Clase:
Programar la bsqueda y eliminacin de Datos para las Tablas Vendedor y
Producto.

Visual Basic .NET - Avanzado

- 57 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 5
ENLACE A DATOS
EN

WINDOWS

FORM I

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Implementa mdulos, clases y componentes que permitan elaborar
programas en n-capas.
Desarrolla programas con controles de enlace a datos.
Disea informes para la impresin de datos desde una aplicacin
Windows.
Genera proyectos de instalacin de aplicaciones desarrolladas.
Instala y desstanla aplicaciones
Procedimentales:

Utiliza los controles de enlace a datos conectados


desconectados y ejecuta las sentencias de cdigo.

y/o

Actitudinales:

Reconoce las propiedades de los controles de enlace a datos y


valora la importancia de su uso.

Visual Basic .NET - Avanzado

- 58 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

OBJETOS DE ENLACE DE DATOS


OBJETO DATAADAPTER
Como hemos comentado anteriormente, el objeto sqlDataAdapter va a
desempear el papel de puente entre el origen de datos y el DataSet,
permitindonos cargar el DataSet con la informacin de la fuente de datos y
posteriormente, actualizar el origen de datos con la informacin del
DataSet.
La Clase DataAdapter dispone de cuatro propiedades, que nos van a
permitir asignar a cada una, un objeto Command (sqlCommand) con las
operaciones estndar de manipulacin de datos. Estas propiedades son las
siguientes.
PROPIEDAD
DESCRIPCIN
InsertCommand
Objeto de la clase Command, que se va a utilizar
realizar una insercin de datos.
SelectCommand
Objeto de la Clase Command que se va a utilizar
ejecutar una sentencia Select de SQL.
UpdateCommand
Objeto de la Clase Command que se va a utilizar
realizar una modificacin de los datos
DeleteCommand
Objeto de la Clase Command que se va a utilizar
realizar una eliminacin de datos.
Tipos de adaptadores de datos
Visual Studio incorpora dos adaptadores de datos principales para utilizarse
con bases de datos:
OleDbDataAdapter es apropiado para utilizarlo con cualquier fuente de datos
que proporcione un proveedor OLE DB.
SqlDataAdapter es especfico a SQL Server. Como no funciona a travs de
una capa OLE DB, es ms rpido que OleDbDataAdapter. Sin embargo, slo
puede ser utilizado con SQL Server versin 7.0 o superior.
Creacin del DATAADAPTER
Podemos instanciar el DataAdapter utilizando la palabra clave Dim y
pasando una cadena de consulta y un objeto Connection como parmetros.
El DataAdapter verificar si la Connection est abierta, y si no lo est, la
abrir para nosotros y la cerrar cuando nuestra llamada al mtodo se
complete. Esta aproximacin es til si ya hemos establecido las propiedades
de un objeto Connection en nuestra aplicacin y slo necesitamos abrir la
conexin para poblar las tablas de datos.

Visual Basic .NET - Avanzado

- 59 -

para
para
para
para

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

OBJETO DATASET
Este objeto pertenece a la clase desconectada de ADO.NET y se encuentra
definida en el espacio de nombres System.Data. Las clases desconectadas
se muestran en la siguiente tabla.
CLASE
DESCRIPCIN
Clase desconectada de datos que almacena tablas
(y sus columnas), que pueden estar relacionadas
DATASET
entre s y sobre las cuales se puede aplicar
diferentes vistas.
Clase que define la estructura de datos bsica de
DATATABLE
un SGBDR. Se compone de filas y columnas en las
que almacena la informacin y sus esquemas.
Representa una unidad de informacin dentro de
DATACOLUMN
la tabla. Almacena su descripcin (Metadatos) y
su informacin (Dato).
Agrupacin de un conjunto de columnas con
DATAROW
informacin. Una tabla representa a su vez una
agrupacin de filas.
Establece el vnculo que existe entre dos o ms
tablas a partir de un campo clave. Esto permitir
DATARELATION
navegar por la informacin de las tablas
relacionadas de manera transparente
Proporciona la habilidad de acceder a los datos de
DATAVIEW
una tabla desde diferentes puntos de vistas,
ordenacin y filtrado de datos.
La estructura de un DataSet se muestra en la siguiente figura.
DataSet
DataTableCollection
DataTable
DataRowCollection
DataColumnCollectio
n
ConstraintCollection

DataRelationCollection

Visual Basic .NET - Avanzado

- 60 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Cada tabla contenida dentro de un objeto DataSet se encuentra disponible a


travs de su propiedad Tables. Que es una coleccin de objetos
system.data.datatable.
Cada objeto DataTable contiene una coleccin de objetos DataRow que
representan las filas de la tabla. Cada objeto DataRow, es decir, cada fila
posee una coleccin de objetos DataColumn, que representa cada una de
las columnas de la fila actual.
Cada objeto DataTable dispone de una propiedad llamada DefaultView, que
devuelve un objeto de la clase DataView, el cual nos ofrece una vista de los
datos de la tabla para que podamos recorrer los datos, filtrarlos, ordenarlos,
etc.
Para poder crear e inicializar las tablas de dataSet debemos hacer uso del
objeto DataAdapter. Para SQL el objeto es sqlDataAdapter.
Llenar un DATASET
Un dataset es un contenedor, de modo que necesitamos poblarlo con datos.
Podemos poblar un dataset de varios modos:
Invocar el mtodo Fill de un adaptador de datos. Llamando este mtodo
hace que el adaptador ejecute una sentencia SQL o un procedimiento
almacenado y pueble una tabla en el dataset con los resultados. Al objeto
DataAdapter le pasamos como parmetro una cadena que representa la
consulta que se va a ejecutar, y que va a rellenar de datos el DataSet. Del
objeto DataAdapter utilizamos el mtodo Fill(), que posee dos parmetros;
el primero es el Data Set a rellenar de informacin; y el segundo, una
cadena con el nombre que tendr la tabla creada dentro del DataSet,
producto de la ejecucin de la consulta.
Poblar tablas manualmente en el dataset creando DataRows y aadirlas a la
coleccin Rows de la tabla.

Visual Basic .NET - Avanzado

- 61 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 13:
Consulta en un ListBox
El siguiente cdigo fuente se muestra un sencillo ejemplo de creacin de un
objeto DataSet que llenaremos con un DataAdapter. Una vez listo el
DataSet, recorreremos la tabla que contiene y mostraremos valores de sus
columnas en un ListBox.

En el ModDeclaraciones, agregar una variable para el SQLDataAdapter.

En el ModDeclaraciones, agregar una variable para el SQLDataAdapter.

En el ModDeclaraciones, agregar una variable para el DataTable.

En el ModDeclaraciones, agregar una variable para el DataRow.

Visual Basic .NET - Avanzado

- 62 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al hacer clic en Mostrar Clientes, se deben mostrar todos los datos de la


tabla Cliente en el ListBox.

En el ejemplo solo se estn mostrando los Campos Nombre y Apellido:

Prctica Clase:
Programar la bsqueda de Datos para las Tablas Vendedor y Producto.

Visual Basic .NET - Avanzado

- 63 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 14:
Consulta en un ListView
Usaremos la misma lgica de la aplicacin anterior, y mostraremos todos los
datos de la Tabla Cliente en un ListView.

Al hacer clic en Mostrar Clientes:

Visual Basic .NET - Avanzado

- 64 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

El resultado sera:

Prctica Clase:
Programar la recuperacin de Datos para las Tablas Vendedor y Producto.

Visual Basic .NET - Avanzado

- 65 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 15:
Mostrar los Datos en TextBox y permitir recorrer todos los registros uno a
uno. Los TextBox deben iniciar desactivados.

Al Cargar el Formulario se deben mostrar los datos del primer cliente.

Visual Basic .NET - Avanzado

- 66 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Programar los Botones Primero, Siguiente, Anterior y ltimo.

En la aplicacin se estn agrupando los botones de movimiento en un


procedimiento comn y a travs del parmetro sender se controla al botn
sobre el cual se hace click usando en todo momento la variable reg, para
saber en todo momento la fila sobre la cual nos encontramos.
Prctica Clase:
Programar la Navegacin de Datos para las Tablas Vendedor y Producto.

Visual Basic .NET - Avanzado

- 67 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

USO DE DATASET FRENTE A DATAREADER


El procedimiento general para acceder a bases de datos vara, dependiendo
de si utilizamos un DataSet o un DataReader:
USANDO DATASETS
1. Conectar a la base de datos
utilizando
SqlConnection
u
OleDbConnection.
2. Almacenar la consulta de la base
de datos en un SqlDataAdapter o
en un OleDbDataAdapter.
3. Poblar un DataSet desde
DataAdapter utilizando Fill.

el

4. Crear una nueva DataView para la


tabla deseada.
5. Enlazar un control servidor, como
el DataGrid al DataView.

1.

USANDO DATAREADERS
1. Conectar a la base de datos
utilizando
SqlConnection
u
OleDbConnection.
2. Abrir la conexin con el mtodo
Open.
3. Almacenar la consulta de la
base de datos en objetos
SqlCommand
u
OleDbCommand.
4. Poblar un DataReader desde el
Command utilizando el mtodo
ExecuteReader.
5. Invocar los mtodos Read y
Get del DataReader para leer
datos.
6. Visualizar manualmente los
datos.
7. Cerrar el DataReader y la
conexin.

Visual Basic .NET - Avanzado

- 68 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

EXPLORADOR DE SERVIDORES

Podemos utilizar el Explorador de servidores para visualizar y manipular


enlaces a datos, conexiones de bases de datos, y recursos del sistema en
cualquier servidor para el que tengamos acceso en red. Utilizando el
Explorador de servidores, podemos:
Crear y abrir conexiones de datos a Microsoft Access, a servidores
ejecutando Microsoft SQL Server y a otras bases de datos.
Iniciar sesin en servidores y mostrar sus bases de datos, tablas,
campos y sus datos sin abandonar el entorno de desarrollo ni utilizar el
software de la base de datos.
Visualizar los servicios del sistema, incluyendo el registro de sucesos,
colas de mensajes, contadores de rendimiento y otros servicios del
sistema.
Visualizar informacin sobre los Servicios Web XML disponibles y los
mtodos y esquemas que proporcionan.
Almacenar proyectos y referencias a bases de datos.
Crear componentes de datos que hagan referencia al recurso de datos o
monitorizar su actividad arrastrando nodos desde el Explorador de
servidores a nuestros proyectos de Visual Studio .NET.
Interactuar con recursos de datos programando los componentes de
datos creados en nuestros proyectos de Visual Studio .NET.

Visual Basic .NET - Avanzado

- 69 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Podemos abrir el Explorador de servidores en cualquier momento durante el


proceso de desarrollo, mientras trabajamos con cualquier tipo de proyecto o
elemento.
Abrir el Explorador de Servidores
En el men Ver, hacer clic en Explorador de servidores.
Si la ficha Explorador de servidores se muestra en el extremo izquierdo
de la pantalla, hacer clic en esa ficha.

Agregar y eliminar conexiones a datos


El Explorador de servidores muestra las conexiones a bases de datos bajo el
nodo Conexiones de datos. Despus de establecer una conexin, podemos
disear programas para abrir conexiones y recuperar y manipular los datos.
De modo predeterminado, el Explorador de servidores muestra conexiones a
datos y enlaces a servidores utilizados con anterioridad.
Agregar una conexin a datos en el Explorador de servidores
1. En el men Herramientas, hacer clic en Conectar con base de datos. Se
abre el cuadro de dilogo Propiedades del vnculo de datos.

2. En la ficha Proveedor del cuadro de dilogo Propiedades del vnculo de


datos, seleccionar un proveedor.

Visual Basic .NET - Avanzado

- 70 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

3. Dar clic en continuar para buscar la Base de Datos con la cual se desea
conectar.
Para nuestro ejemplo, estamos usando SQLServer, por lo tanto debemos
seleccionar la Autenticacin.

Visual Basic .NET - Avanzado

- 71 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Visual Basic .NET - Avanzado

- 72 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

4. Dar clic en Seleccionar para buscar la Base de Datos.

5. Dar clic en Probar conexin.

6. Aceptar la Conexin y el resultado ser el siguiente:

Visual Basic .NET - Avanzado

- 73 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Eliminar una conexin de datos desde el explorador de servidores


1. En el Explorador de servidores, expandir el nodo Conexiones de datos.
2. Seleccionar la conexin a la base de datos deseada.
3. Pulsar Eliminar. No se produce ningn efecto en la base de datos.
Hemos eliminado la referencia desde nuestra vista.

Visual Basic .NET - Avanzado

- 74 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 6
ENLACE A DATOS
EN

WINDOWS

FORM II

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Desarrolla programas con controles de enlace a datos.
Procedimentales:

Utiliza los controles de enlace a datos conectados y/o


desconectados
y
relaciona
tablas en el Data Set. Ejecuta las sentencias de cdigo.
Actitudinales:

Reconoce las propiedades de los controles de enlace a datos


conectados y/o desconectados y valora la importancia de su uso.

Visual Basic .NET - Avanzado

- 75 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

TABLAS DE BSQUEDAS
CONTROL DATAGRIDVIEW
Despus de poblar un dataset, podemos visualizar y modificar datos
utilizando el control DataGridView de Windows Forms. DataGridView
muestra datos en una serie de filas y columnas. El caso ms simple es
cuando la rejilla se enlaza con una fuente de datos que contiene una nica
tabla sin relaciones. En ese caso, los datos aparecen simplemente en filas y
columnas, como en una hoja de clculo.
Cmo funciona el DATAGRIDVIEW
Si el DataGridView se enlaza a datos con mltiples tablas relacionadas y si
se activa la navegacin en la rejilla, ste visualizar expansores en cada
fila. Un expansor permite la navegacin desde una tabla padre a una hija.
Haciendo clic en un nodo se muestra la tabla hija y haciendo clic en el botn
Atrs muestra la tabla padre original. En este modo, la rejilla muestra las
relaciones jerrquicas entre tablas.
DataGridView puede proporcionar un interfaz de usuario para un dataset,
navegacin entre tablas relacionadas y ricas capacidades de formateo y
edicin. La visualizacin y manipulacin de datos son funciones separadas:
el control gestiona el interfaz de usuario, mientras que las actualizaciones
de datos las gestiona la arquitectura de enlace de datos de Windows Forms
y por los proveedores de datos ADO.NET. Por tanto, mltiples controles
enlazados a la misma fuente de datos permanecern sincronizados.
Enlace de datos al control
Para que el control DataGridView funcione, debemos enlazarlo con una
fuente de datos utilizando las propiedades DataSource y DataMember en
tiempo de diseo. Este enlace vincula el DataGridView a un objeto de fuente
de datos instanciado (como un DataSet o DataTable) y el control
DataGridView se actualiza con los resultados de acciones realizadas sobre
los datos. La mayora de acciones especficas de datos no son realizadas por
el DataGridView. Se realiza por medio de la fuente de datos.

Visual Basic .NET - Avanzado

- 76 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 16:
Mostrar datos de un DataSet usando el control DataGridView

En el Mdulo ModDeclaraciones, declarar la Variable para el constructor


de las sentencias SQL: SQLCommandBuilder.

Al hacer clic en Mostrar Clientes, se debe llenar el DataGridView con


todos los datos de la Tabla Cliente.

Prctica Clase:

Visual Basic .NET - Avanzado

- 77 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Programar para las Tablas Vendedor y Producto.

ACTUALIZAR DATOS CON DATAADAPTER Y DATASET


DataAdapter soporta mtodos especficos para mover datos entre el
DataSet y la fuente de datos. Podemos utilizar un adaptador de datos para
realizar las siguientes operaciones:
Recuperar filas de una fuente de datos y poblarlas en tablas de datos
correspondientes en un DataSet.
Para recuperar filas de una fuente de datos y poblar un DataSet, utilizar el
mtodo Fill de SqlDataAdapter u OleDbDataAdapter. Cuando invocamos el
mtodo, se invoca una sentencia SQL SELECT en la fuente de datos.
Ejecutar este mtodo abrir y cerrar el objeto de conexin.
Transmitir los cambios realizados a una tabla DataSet a la fuente de datos
correspondiente.
Para transmitir los cambios en una tabla DataSet a la fuente de datos,
utilizar el mtodo Update del adaptador. Cuando invocamos el mtodo,
ejecuta cualquier sentencia SQL INSERT, UPDATE o DELETE que sea
necesaria, dependiendo de si el registro afectado es nuevo, modificado o
borrado. Ejecutar este mtodo abrir y cerrar el objeto conexin.
Aplicacin 17:
Mostrar datos en un DataGridView y permitir agregar nuevos Clientes
ingresando los Datos en los TextBox.

Visual Basic .NET - Avanzado

- 78 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

En el Mdulo ModDeclaraciones, declarar el Comando para Insertar


Datos.

En el Mdulo ModDeclaraciones, declarar el Comando para Insertar


Datos.

Crear el Procedimiento Privado MostrarDatos, para llenar el DataSet y


mostrar los datos en el DataGridView.

Crear el Procedimiento Privado CrearParametros, para crear el


Comando CMDInsertar indicando la sentencia que ejecutar el
DataAdapter DAP en su accin Insertcommand.

Visual Basic .NET - Avanzado

- 79 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Crear el Procedimiento Privado AsignarParametros, para capturar los


Datos que usar el DataAdapter al momento de insertar los Datos.

Al dar clic en Mostrar, se deben llenar los Datos existentes en la Tabla


Cliente.

Visual Basic .NET - Avanzado

- 80 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al dar Clic en Ingresar se deben Agregar a la Tabla los Datos ingresados


en los TextBox, actualizndose los datos en el DataGridView.

El resultado sera:

Prctica Clase:
Programar para las Tablas Vendedor y Producto.

Visual Basic .NET - Avanzado

- 81 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

ADMINISTRAR DATOS EN UNA TABLA


APLICACIN 18:
Usando SQLDataAdapter, SQLCommand y DataSet, permitir navegar por
todos los registros de la Tabla Cliente.
Los TextBox inician desactivados.

Crear el procedimiento para cargar los datos que se mostrarn.

Al cargar el Formulario se deben mostrar los datos del Primer Cliente.

Visual Basic .NET - Avanzado

- 82 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al dar clic en el botn Primero

Al dar clic en el botn Siguiente

Al dar clic en el botn Anterior

Al dar clic en el botn ltimo

Al dar clic en el Botn Nuevo:

Visual Basic .NET - Avanzado

- 83 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al dar clic en el Botn Ingresar, se deben ingresar los datos de los


TextBox a la Tabla Cliente.

El resultado sera:

Visual Basic .NET - Avanzado

- 84 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al dar Clic en Modificar:

Al dar clic en Actualizar:

El resultado sera:

Visual Basic .NET - Avanzado

- 85 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al hacer clic en Eliminar:

Prctica Clase:
Programar para las Tablas Vendedor y Producto.

Visual Basic .NET - Avanzado

- 86 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

DATARELATION
Los objetos DataRelation nos permiten establecer una relacin entre dos
tablas (objetos DataTable) de un DataSet, a travs de una columna o campo
comn (objetos DataColumn).
Obtener tablas relacionadas mediante cdigo
Aplicacin 19:
Se desean mostrar las Boletas generadas con sus respectivos detalles de los
productos.
Podemos ahorrar la escritura de las instrucciones que se encargan de
obtener las filas hijas, relacionadas con la fila seleccionada de la tabla
padre, empleando un DataGrid. Este control implementa de forma
transparente todos los mecanismo necesarios gracias al databinding, por lo
que, una vez creada la relacin, slo hemos de asignar a su propiedad
DataSource, la tabla padre del Dataset.

Visual Basic .NET - Avanzado

- 87 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

LA CLASE DATAVIEW
La clase DataView nos permite la aplicacin de vistas personalizadas a partir
de una tabla contenida en un DataSet, as como la ordenacin y bsqueda
de filas.
En ADO clsico, para disponer de varias vistas de una misma tabla,
deberamos crear diferentes objetos Recorset, lo cual provocaba el consumo
de una gran cantidad de recursos.

Visual Basic .NET - Avanzado

- 88 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Este aspecto ha cambiado fundamentalmente en ADO.NET, ya que partiendo


de un objeto DataTable situado en un DataSet, vamos a definir varias vistas
simultneamente, ordenar y buscar registros, con la ventaja de que el
consumo de recursos es menor, puesto que los objetos DataView se
alimentan del mismo Datatable.
El DataSet del formulario del ejercicio va a estar compuesto por dos tablas.
El siguiente cdigo fuente muestra el evento de carga del formulario.
Aplicacin 20:

Visual Basic .NET - Avanzado

- 89 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 7
DESARROLLANDO
COMPONENTES Y
CONTROLES

DE

USUARIO

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Desarrolla programas con controles de enlace a datos.
Procedimentales:

Desarrolla componentes, controles de usuario y ejecuta la sentencia


de cdigo
Actitudinales:

Valora la importancia del uso de componentes en el entorno de


programacin.

Visual Basic .NET - Avanzado

- 90 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

HERENCIA ENTRE FORMULARIOS


HERENCIA VISUAL
Adems de la herencia habitual por cdigo que hemos utilizado en los
ejemplos de escritura de clases, los formularios Windows disponen de los
mecanismos necesarios para crear un formulario base, a partir del cual,
posteriormente podremos heredar en formularios derivados; todo ello de
modo visual.
Vamos a desarrollar por lo tanto un ejemplo, en el que mostraremos los
pasos necesarios a dar, tanto en la creacin del formulario base como del
heredado.
Aplicacin 21:
Crear un formulario para identificar y validar a un usuario antes de
permitirle el acceso a una aplicacin. Como norma general, los datos
mnimos que todo usuario debe teclear son su nombre (login) y contrasea
(password); pero en algunos casos, dependiendo del programa a escribir,
esta ventana de identificacin puede requerir la introduccin de datos
adicionales, como un cdigo adicional, una fecha, etc.
Dado que a priori, desconocemos los datos adicionales que podrn ser
necesarios para este formulario, crearemos el formulario base incluyendo la
introduccin del login, password, y un botn para validar dichos datos, y
posteriormente, en otro proyecto, heredaremos este formulario en uno
derivado, al que aadiremos nuevos controles.
El formulario base
Comencemos por tanto, abriendo Visual Studio .NET, y creando un nuevo
proyecto VB.NET, de tipo Windows, al que daremos el nombre
FormularioBase.

Visual Basic .NET - Avanzado

- 91 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

A continuacin, abriremos la ventana del explorador de soluciones,


seleccionaremos el formulario por defecto de este proyecto y lo
eliminaremos.

Siguiendo en el explorador de soluciones, en esta ocasin haremos clic


sobre el nombre del proyecto, y pulsaremos el botn de propiedades de
esta ventana.

Visual Basic .NET - Avanzado

- 92 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

En la ventana de propiedades, abriremos la lista desplegable Tipo de


Aplicacin, y seleccionaremos la opcin Biblioteca de clases. Para poder
utilizar un formulario como clase base de otro formulario, el proyecto que
contiene el formulario base debe ser de tipo librera, para que al compilarlo,
genere un fichero .DLL con dicho formato de biblioteca.

El siguiente paso consiste en aadir a este proyecto, el formulario que va a


actuar como base. Agregamos un nuevo Formulario llamado frmValidar.

En el formulario frmValidar, insertaremos los controles necesarios para


introducir los datos de usuario con su respectiva clave y un botn de
validacin de dichos datos.

Visual Basic .NET - Avanzado

- 93 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Programamos el Botn Validar:

Para finalizar con el formulario base, seleccionaremos en el IDE la opcin de


Generar.

Lo cual crear la
FormularioBase.DLL.

biblioteca

de

clases,

es

decir,

el

archivo

A partir de este punto, deberemos crear el proyecto que contenga un


formulario que herede el formulario base que acabamos de crear. Esto lo
podemos conseguir de dos modos:
Agregando un nuevo proyecto a la solucin.
Creando un nuevo proyecto aparte.
En ambos casos, tendremos que establecer la oportuna referencia, bien hacia el
proyecto del formulario base en el primer caso, o hacia el archivo que
contiene la librera de clases, como veremos en la siguiente aplicacin.

Visual Basic .NET - Avanzado

- 94 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

AGREGAR UN PROYECTO CON UN FORMULARIO DERIVADO


Aplicacin 22:
Creamos un Nuevo proyecto y lo aadimos a la solucin actual, con el
nombre FormularioDerivado. Ello har que nuestra solucin de proyectos
FormularioBase, quede de la siguiente manera (con el proyecto del
formulario base y el nuevo).

Para poder realizar las oportunas pruebas, haremos clic derecho en el nuevo
proyecto, FormularioDerivado, y seleccionaremos del men contextual la
opcin Establecer como proyecto de inicio, ya que como una biblioteca de
clases no podemos ejecutarla visualmente, necesitamos un proyecto que
sea de tipo aplicacin Windows, que s disponen de medio visual de
representacin a travs de formularios.

El siguiente paso ser eliminar el formulario que contiene el proyecto


FormularioDerivado, de igual modo que el mostrado anteriormente.

Visual Basic .NET - Avanzado

- 95 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Agregamos un nuevo Elemento al Proyecto.

Seleccionamos Formulario Heredado y le damos el nombre de FRMIngreso:

Visual Basic .NET - Avanzado

- 96 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al aceptar la ventana de creacin del formulario, el entorno de desarrollo


buscar la biblioteca de clases con el mbito ms prximo, y que disponga
de formularios heredables, mostrando el resultado en la ventana Selector de
herencia. En nuestro caso, naturalmente, aparecer el formulario base
frmValidar, contenido en la DLL que hemos generado anteriormente.

Al aceptar ser habr creado el nuevo formulario, en base al formulario


base especificado, y establecida una referencia en el proyecto
FormularioDerivado hacia el proyecto base FormularioBase.

Visual Basic .NET - Avanzado

- 97 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Al abrir el formulario frmIngreso en el diseador de formularios, se


mostrar con los controles pertenecientes al formulario base bloqueados;
ello es debido a que tales controles pertenecen a la clase base del
formulario, y slo pueden ser manipulados desde el proyecto del formulario
base.

Al formulario derivado le podemos agregar algunos controles ms.

En lo que respecta al cdigo de este formulario, slo podemos escribir los


eventos de los nuevos controles, ya que el cdigo de los controles
heredados se encuentra protegido, siendo slo modificable desde el
proyecto del formulario base. El nico evento, por lo tanto que vamos a
escribir aqu, ser el del botn BTNSalir, que llamar al mtodo de cierre del
formulario.

Al ejecutar, el cdigo del Botn Validar se heredara del FormularioBase.

Visual Basic .NET - Avanzado

- 98 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Aplicacin 23:
Crear un formulario heredado desde un proyecto independiente La
diferencia principal en este caso consiste en que dentro de la solucin de
proyectos, no est el proyecto que contiene el formulario base, por lo que
tendremos que buscar el archivo que contiene la librera de clases
manualmente.
Vamos a crear un nuevo proyecto de aplicacin Windows, al que daremos el
nombre FormularioDerivado01.

Eliminamos el formulario por defecto que contiene y agregamos el


formulario Heredado.

Visual Basic .NET - Avanzado

- 99 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Le damos el nombre de FRMInicio:

Al Agregar, el selector de herencia nos avisa de que no puede localizar en el


mbito de que dispone, un ensamblado (biblioteca de clases en este caso)
que contenga formularios de los que heredar.

Visual Basic .NET - Avanzado

- 100 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Tenemos por lo tanto, que pulsar el botn Examinar y buscar el archivo


FormularioBase.DLL, que creamos en la aplicacin 21 y se encuentra en la
ruta de dicho proyecto, en su directorio bin\Debug.
Una vez localizado, aceptaremos esta ventana.

Seleccionar FRMValidar.

Visual Basic .NET - Avanzado

- 101 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

El IDE se encargar a continuacin, de establecer la referencia entre


nuestro proyecto y el ensamblado o archivo DLL que contiene el formulario
base, mostrando finalmente el nuevo formulario heredado del mismo modo
en que vimos en el ejemplo anterior. Seguidamente, aadiremos algunos
controles para adaptarlo a las necesidades particulares de este proyecto.

Visual Basic .NET - Avanzado

- 102 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 8
CRYSTAL
REPORTS I

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Desarrolla programas con controles de enlace a datos.
Procedimentales:

Disea e implementa Reportes y realiza el enlace con la base de


datos.
Actitudinales:

Muestra inters por disear reportes enlazados a la base de datos.

Visual Basic .NET - Avanzado

- 103 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

INFORMES
Visual Studio. Net incluye Crystal Reports como un mecanismo oficial de
creacin de reportes. Crystal Reports es un producto muy desarrollado y
completo para la creacin de reportes y cuenta con una infinidad de
opciones.

CREAR CONEXIN CON LA BASE DE DATOS


1) Agregar nuevo origen de Datos.

2) Elegir tipo de Origen de Datos

3) Elegir la conexin a usarse.

Visual Basic .NET - Avanzado

- 104 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

4) Agregar la conexin a la Base de Datos. Clic en examinar para buscar la


Base de Datos respectiva.

5) Seleccionar la Base de Datos.

Visual Basic .NET - Avanzado

- 105 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

6) Seleccionar el modo de Autenticacin.

7) Probar conexin.

8) Agregar la Base de Datos a la Solucin.

Visual Basic .NET - Avanzado

- 106 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

9) El Asistente buscar los elementos de la Base de Datos seleccionada.

10) Seleccionar los objetos que se desean agregar de la Base de Datos


para que se almacenen en un DataSet.

Visual Basic .NET - Avanzado

- 107 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

11)

Ya tenemos la conexin en el Explorador de Servidores.

Visual Basic .NET - Avanzado

- 108 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

CREAR UN INFORME
Independiente de cmo se har la presentacin, el reporte se define en un
archivo .RPT, que forma parte de su proyecto. Ese archivo especifica el
modo en que se har la presentacin del reporte, pero no incluye los datos
propiamente dichos. Los datos se definirn en el tiempo de ejecucin.
Crystal Reports se basa en un concepto muy comn de la definicin de
reportes: los reportes se componen de secciones, y cada seccin es un
espacio horizontal en la pgina. Existen diversos tipos de secciones, por
ejemplo:
Encabezado del reporte, aparece en la primera pgina.
Encabezado de pgina, aparece en la parte superior de todas las pginas.
Detalle: lo ms importante. En el tiempo de ejecucin, se genera una de
estas secciones para cada lnea (registro) en la base de datos.
Pie de pgina, aparece en la parte inferior de todas las pginas.
Pie de reporte, aparece al final del reporte.
Aplicacin 24:
Crear un Reporte que muestre la lista de todos los Clientes.
Antes de crear el reporte debemos tener un proyecto abierto y deber estar
la fuente de datos a mostrar.
Agregamos un nuevo elemento al Proyecto.

Visual Basic .NET - Avanzado

- 109 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Ahora agregaremos un reporte al proyecto. Seleccionaremos CrystalReports


y le daremos el nombre de RPTClientes.

Crystal Reports mostrar la galera en la cual seleccionaremos Usar


asistente de Informes. Tambin seleccionamos Informe Estndar.

Visual Basic .NET - Avanzado

- 110 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

ACCEDER A LA BASE DE DATOS


El siguiente paso de creacin de Reportes es seleccionar el origen de datos
para nuestro Reporte.
Presione Aceptar para pasar a la pantalla siguiente para la eleccin de la
fuente de los datos. Seleccione la tabla a mostrar a partir del conjunto de
datos creado.

Seleccionar los Campos que se desean mostrar:

Visual Basic .NET - Avanzado

- 111 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Seleccionar el nivel de Agrupamiento.

Si se desea se puede seleccionar que se muestre algn resumen en el


Reporte. Esto se puede usar cuando se generan Reportes de Ventas.

Visual Basic .NET - Avanzado

- 112 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Este paso es opcional, solo si se desea crear un subconjunto de informacin


en el Reporte.

Finalmente, seleccionar el estilo del Informe:

Visual Basic .NET - Avanzado

- 113 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

El resultado sera:
La vista Diseo del Reporte:

Cuando creamos el reporte se mostrar de la siguiente manera

Visual Basic .NET - Avanzado

- 114 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

El informe creado ser un elemento ms del Proyecto.

Actividad:
Crear un Reporte para cada Tabla de la Base de Datos.

Visual Basic .NET - Avanzado

- 115 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 9
CRYSTAL
REPORTS II

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Implementa mdulos, clases y componentes que permitan elaborar
programas en n-capas.
Desarrolla programas con controles de enlace a datos.
Disea informes para la impresin de datos desde una aplicacin
Windows.
Genera proyectos de instalacin de aplicaciones desarrolladas.
Instala y desstanla aplicaciones.
Procedimentales:

Personaliza la presentacin del informe mediante los controles del


crystalreportviewer.
Actitudinales:

Muestra inters al trabajar con controles dentro de su informe.

Visual Basic .NET - Avanzado

- 116 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

MOSTRAR INFORMES
VISUALIZADOR DEL INFORME
Los reportes se visualizan
CrystalReportViewer.

en

los

formularios

usando

el

control

Aplicacin 25:

Modificar las propiedades:

Visual Basic .NET - Avanzado

- 117 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

El CrystalReportViewer cambiar de apariencia:

Visual Basic .NET - Avanzado

- 118 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

CREAR UN INFORME DESDE ADO NET


Aplicacin 26:
La presente aplicacin mostrar un reporte creado con cdigo.

VISUALIZAR EL INFORME

Visual Basic .NET - Avanzado

- 119 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 10
PROYECTOS
INSTALACIN

10

DE

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Implementa mdulos, clases y componentes que permitan elaborar
programas en n-capas.
Desarrolla programas con controles de enlace a datos.
Disea informes para la impresin de datos desde una aplicacin
Windows.
Genera proyectos de instalacin de aplicaciones desarrolladas.
Instala y desstanla aplicaciones.
Procedimentales:

Genera aplicacin y Crea el proyecto de instalacin.


Genera la instalacin y desinstalacin del proyecto
Actitudinales:

Muestra inters, responsabilidad y satisfaccin en el proyecto de


instalacin.

Visual Basic .NET - Avanzado

- 120 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

INSTALAR APLICACIONES
PROYECTO DE INSTALACIN
1) Una vez finalizada la programacin de los proyectos, se guarda y se
genera la aplicacin.

2) Agregar un nuevo proyecto.

Visual Basic .NET - Avanzado

- 121 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

3) Seleccionar Asistente para proyectos de instalacin y agregarlo a la


solucin actual.

4) Se inicia el asistente:

Visual Basic .NET - Avanzado

- 122 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

5) Seleccionar el tipo de instalador.

6) Agregar los elementos necesarios.

Visual Basic .NET - Avanzado

- 123 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

7) Se deben agregar los elementos que no pertenecen al proyecto, como


Copias de Seguridad.

8) Se muestra la lista de elementos incluidos.

Visual Basic .NET - Avanzado

- 124 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

9) Finalizar el Proyecto de instalacin.

10)

La solucin final tendr dos Proyectos.

11)

Generar el Proyecto de Instalacin.

Visual Basic .NET - Avanzado

- 125 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

12) Mientras se est generando el proyecto final se muestran las


siguientes opciones.

13)

Una vez concluido el proceso.

14) En la carpeta de la solucin se muestra la carpeta para el proyecto de


instalacin.

INSTALAR APLICACIONES
El proceso de instalacin del proyecto finalizado es similar a la instalacin
de cualquier programa.
1) Se ejecuta el archivo Setup.exe

2) Se inicia el instalador

Visual Basic .NET - Avanzado

- 126 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

3) Se inicia el asistente de instalacin.

4) Seleccionar carpeta de instalacin.

Visual Basic .NET - Avanzado

- 127 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

5) Confirmar la instalacin.

6) Progreso de la instalacin.

Visual Basic .NET - Avanzado

- 128 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

7) Finalizar la instalacin.

8) En la carpeta seleccionada para la instalacin, se copiarn los archivos


necesarios.

9) Para desinstalar la aplicacin, el proceso se ejecuta desde el Panel de


control.

Visual Basic .NET - Avanzado

- 129 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

Sesin 11

11

PROYECTO FINAL

Al finalizar la Sesin usted ser capaz de:


Competencias:

Conoce conceptos avanzados de programacin con Visual Basic


.NET.
Desarrolla programas con controles de enlace a datos.

Visual Basic .NET - Avanzado

- 130 -

Grupo Educativo Leonardo Da Vinci


COMPUTREIN

DESARROLLO PROYECTO FINAL

Visual Basic .NET - Avanzado

- 131 -

Vous aimerez peut-être aussi