Anda di halaman 1dari 11

Taller de Programacin Concurrente con Visual Basic 2010

IESTP Arturo Sabroso Montoya

TALLER DE PROGRAMACIN CONCURRENTE Julio Javier Larico Tipula


jlarico@docentetic.com

www.docentetic.com

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

Indice
Semana 01 ADO.NET. Modo Conectado Modo Desconectado Semana 02 MDI y Acceso a datos Conexin usando el proveedor OLEDB Conexin usando el proveedor SQLCLIENT Semana 03 Controlando los errores de conexin Trabajando con eventos del objeto Connection Semana 04 Evaluacin Semana 05 Conexin usando la seguridad integrada de Windows Conexin usando la seguridad SQL Server y Windows Semana 06 Conexin ODBC Enviando rdenes a una Base de Datos Enviando rdenes con parmetros Semana 07 Enviando rdenes con parmetros y creando objetos parameter Agrupar rdenes en una transaccin Semana 08 Evaluacin Semana 09 Enviar una orden que recupera un valor Enviar una orden que recupera un conjunto de registros y almacenarlo en un DataReader Semana 10 Recuperar datos y almacenarlo en un ComboBox Procedimientos almacenados en el Servidor Semana 11 Trabajando con procedimientos almacenados (Input y Output) Procedimientos almacenados para insertar registros Semana 12 Evaluacin Semana 13 Procedimientos almacenados para Eliminar Registros Llamar al procedimiento almacenado desde la aplicacin Visual Basic Semana 14 Trabajando con procedimientos almacenados (Conjunto de registros) Semana 15 Desarrollo de una aplicacin MDI con acceso a base de datos que realiza el mantenimiento de una tabla con Procedimientos almacenados Semana 16 Presentacin de Proyecto Final. Aplicacin Windows con base de datos Semana 17 Evaluacin 04

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

Presentacin
El presente manual servir como complemento al curso de Taller de Programacin Concurrente. El manual ha sido dividido en 16 sesiones de aprendizaje correspondiendo cada una a una clase terica prctica de 8 horas pedaggicas. En cada sesin se ha contemplado: tema, objetivos especficos, actividades, contenido, ejercicios resueltos y ejercicios propuestos. Las actividades son ejercicios desarrolladas en clase guiados por el profesor del curso. Se espera que el alumno pueda probar estos programas en la computadora. En la parte final, Sesin 15 y Sesin 16 se ha propuesto dos casos prcticos para que el alumno desarrolle, aplicando todos los conocimientos adquiridos durante su proceso de aprendizaje. Julio Javier Larico Tipula www.docentetic.com jlarico@docentetic.com

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

Introduccin al Acceso a Datos


SESSIONES Sesin 1 OBJETIVOS ESPECIFICOS Conocer las caractersticas de ADO.NET Trabajar en Modo Conectado Trabajar en Modo Desconectado

CONTENIDO 1. ADO.NET. 2. Caractersticas de ADO.NET 3. Arquitectura 4. Interfaces de acceso a base de datos 5. Acceso Conectado 6. Acceso Desconectado 7. El modo de funcionamiento tpico de ADO.NET ACTIVIDADES Desarrollar ejercicios

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

1. ADO.NET ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para el programador de .NET. ADO.NET ofrece abundancia de componentes para la creacin de aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de .NET Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creacin de clientes de base de datos de aplicaciones para usuario y objetos empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet. 2. CARACTERISTICAS DE ADO.NET ADO.NET proporciona acceso coherente a orgenes de datos como Microsoft SQL Server y XML, as como a orgenes de datos expuestos mediante OLE DB y ODBC. Las aplicaciones para usuarios que comparten datos pueden utilizar ADO.NET para conectar a estos orgenes de datos y recuperar, manipular y actualizar los datos contenidos. ADO.NET separa el acceso a datos de la manipulacin de datos y crea componentes discretos que se pueden utilizar por separado o conjuntamente. ADO.NET incluye proveedores de datos de .NET Framework para conectarse a una base de datos, ejecutar comandos y recuperar resultados. Los resultados se procesan directamente o se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos al usuario para un propsito especfico, combinados con datos de varios orgenes, o de utilizarlos de forma remota entre niveles. El objeto DataSet de ADO.NET tambin puede utilizarse independientemente de un proveedor de datos de .NET Framework para administrar datos que son locales de la aplicacin o que proceden de un origen XML. Las clases de ADO.NET se encuentran en el archivo System.Data.dll y estn integradas con las clases de XML que se encuentran en el archivo System.Xml.dll. Cuando se compila un cdigo que utiliza el espacio de nombres System.Data, es necesario hacer referencia a los archivos System.Data.dll y System.Xml.dll. 3. ARQUITECTURA ADO.NET El funcionamiento de ADO.NET se basa esencialmente en utilizar los siguientes componentes:

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

Data Provider (proveedor de datos) Proporciona un acceso uniforme a conjuntos de datos. Su papel el similar al de un controlador ODBC o JDBC. DataSet El componente ms importante, puede almacenar datos provenientes de mltiples consultas (esto es, mltiples tablas). DataAdapter Sirve de enlace entre el contenedor de conjuntos de datos (DataSet) y la base de datos (Data Provider). Los componentes anteriores se completan con DataReader (para realizar eficientemente lecturas de grandes cantidades de datos que no caben en memoria), DataRelation (la forma de establecer una reunin entre dos tablas), Connection (utilizada por DataAdapter para conectarse a la base de datos) y Command (que permite especificar las rdenes, generalmente en SQL, que nos permiten consultar y modificar el contenido de la base de datos: select, insert, delete y update). Un proveedor de datos debe proporcionar una implementacin de Connection, Command, DataAdapter y DataReader. 4. INTERFACES DE ACCESO A BASES DE DATOS Evolucin histrica de los estndares propuestos por Microsoft: 1. ODBC (Open Database Connectivity): API estndar ampliamente utilizado, disponible para mltiples DBMSs, utiliza SQL para acceder a los datos. 2. DAO (Data Access Objects): Interfaz para programar con bases de datos JET/ISAM, utiliza automatizacin OLE y ActiveX. 3. RDO (Remote Data Objects): Fuertemente acoplado a ODBC, orientado al desarrollo de aplicaciones cliente/servidor. 4. OLE DB: Construido sobre COM, permite acceder a bases de datos tanto relacionales como no relacionales (no est restringido a SQL). Se puede emplear con controladores ODBC y proporciona un interfaz a bajo nivel en C++. 5. ADO (ActiveX Data Objects): Ofrece un interfaz orientado a objetos y proporciona un modelo de programacin para OLE DB accesible desde lenguajes distintos a C++ (p.ej. Visual Basic). ADO .NET es una coleccin de clases, interfaces, estructuras y tipos enumerados que permiten acceder a los datos almacenados en una base de datos desde la plataforma .NET. Si bien se puede considerar una versin mejorada de ADO, no comparte con ste su jerarqua de clases (aunque s su funcionalidad). ADO .NET combina las capas ADO y OLE DB en una nica capa de proveedores (managed providers). Cada proveedor contiene un conjunto de clases que implementan interfaces comunes para permitir el acceso uniforme a distintas fuentes de datos.

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

ADO .NET usa XML. De hecho, los conjuntos de datos se almacenan internamente en XML, en vez de almacenarse en binario como suceda en ADO. Al estar los datos almacenados en XML, se simplifica el acceso a los datos a travs de HTTP Con ADO .NET se puede acceder a los datos de dos formas distintas: 5. ACCESO CONECTADO Acceso slo de lectura con cursores unidireccionales ("firehose cursors"). La aplicacin realiza una consulta y lee los datos conforme los va procesando con la ayuda de un objeto DataReader. 6. ACCESO DESCONECTADO La aplicacin ejecuta la consulta y almacena los resultados de la misma para procesarlos despus accediendo a un objeto de tipo DataSet. De esta forma, se minimiza el tiempo que permanece abierta la conexin con la base de datos. Al proporcionar conjuntos de datos de forma desconectada, se utilizan mejor los recursos de los servidores y se pueden construir sistemas ms escalables que con ADO (que mantena abierta la conexin con la base de datos la mayor parte del tiempo). Este enfoque resulta ms adecuado en sistemas distribuidos como Internet. 7. EL MODO DE FUNCIONAMIENTO TPICO DE ADO.NET 1. Se crean un objeto Connection especificando la cadena de conexin. 2. Se crea un DataAdapter. 3. Se crea un objeto Command asociado al DataAdapter, con la conexin adecuada y la sentencia SQL que haya de ejecutarse. 4. Se crea un DataSet donde almacenar los datos. 5. Se abre la conexin. 6. Se rellena el DataSet con datos a travs del DataAdapter. 7. Se cierra la conexin. 8. Se trabaja con los datos almacenados en el DataSet. 9. Como los conjuntos de datos se almacenan en memoria y trabaja con ellos de forma desconectada, cuando hagamos cambios sobre ellos (inserciones, borrados o actualizaciones) debemos actualizar el contenido de la base de datos llamando al mtodo Update del DataAdapter y, posteriormente, confirmar los cambios realizados en el DataSet (con AcceptChanges) o deshacerlos (con RejectChanges). 8. APLICACIN PRCTICA. MODELO DE ACCESO A DATOS CONECTADO Aplicacin 01 Este proyecto demuestra el uso simple de un objeto sqlDataAdapter, se leen los cdigo de los pedidos desde la tabla Pedidos y se mostraran en un control ListBox Procedimiento 1. Inicie Visual Studio 2. Haga clic en Archivo, Nuevo Proyecto, Windows 3. Nombre: Aplicacion01 4. Para crear el proyecto, haga clic en Ok

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

5. Agregar un control Label y cambiar su propiedad text a Aplicacin en un entorno Conectado 6. Font: 14 7. Luego agregar un control ListBox

8. Proceda a grabar su proyecto haciendo clic en el botn tendremos la siguiente ventana

(Guardar todo) y

9. Haga clic en Save para grabar nuestro proyecto 10. Pasar a la vista cdigo, haciendo doble clic sobre el Form1 11. Agregar el siguiente cdigo en la parte superior
Imports System.Data.SqlClient

12. Agregar el siguiente cdigo en la seccin Load


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim cn As New SqlConnection("Data source=pcserver; initial catalog=Nwind; Integrated Security=SSPI")
cn.Open() Dim cmdPedidos As New SqlCommand("Select * from Pedidos", cn) Dim drPedidos As SqlDataReader drPedidos = cmdPedidos.ExecuteReader While drPedidos.Read ListBox1.Items.Add(drPedidos.Item("IdPedido")) End While

End Sub

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

9. APLICACIN PRCTICA. MODELO DE ACCESO A DATOS DESCONECTADO Aplicacin 02 Disear una aplicacin que nos muestre en un datagrid la tabla Clientes de la base de datos Northwind, utilizando un dataset en un escenario desconectado. Procedimiento 1. Inicie Visual Studio 2. Haga clic en Archivo, Nuevo Proyecto, Windows 3. Nombre: Aplicacion02 4. Para crear el proyecto, haga clic en Ok

5. Agregar un control label y cambiar su propiedad Text: Conexin en un entorno desconectado Font: 14 6. Agregar un control DataGridView

7. Hacer doble clic izquierdo sobre el formulario para pasar a la vista cdigo 8. Agregar el siguiente cdigo
'1 importar el espacio de nombres Imports System.Data.SqlClient Public Class Form1 Private Sub Form1_Load() Handles MyBase.Load '2 Declarar una variable de conexion

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010


Dim cn As New SqlConnection("data source=PCSERVER; initial catalog=Nwind; integrated security=SSPI") '3 Declara y crea la instancia del objeto DataAdapter que contiene la instruccion SQL Dim da As New SqlDataAdapter("select * from clientes", cn) '4 Declara una variable DataSet para la tabla Clientes Dim dsClientes As New DataSet '5 Se recomienda limpiar al inicio el dataset dsClientes.Clear() '6 Se llena el dataset con el metodo Fill da.Fill(dsClientes, "Clientes") '7 Enlaza el datagrid con el dataset para mostrar los datos de la tabla DataGridView1.DataSource = dsClientes.Tables("Clientes") End Sub End Class

10

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com

Taller de Programacin Concurrente con Visual Basic 2010

11

10 EJERCICIOS PROPUESTOS 1. Desarrollar la siguiente aplicacin Windows (AppPropuesto01) que muestre en un control ListBox la informacin del campo IdCliente de la Tabla Pedidos

2. Desarrollar la siguiente aplicacin Windows (AppPropuesto02) que muestre en un control ListBox la informacin del campo IdEmpleado, Apellidos, Nombre de la Tabla Empleados

11. PARA RECORDAR a) El ADO.NET es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. b) ADO.NET permite acceder a base de datos, desde Excel Hasta Oracle. c) Para conectar nuestra aplicacin con una base de datos de Excel utilizaremos el proveedor OLEDB. d) Para conectar nuestra aplicacin con una base de datos de SQL Server utilizaremos el proveedor de datos SQLClient. e) ADO.NET utiliza algunos objetos ADO, como Connection y Command, y tambin agrega objetos nuevos. Algunos de los nuevos objetos clave de ADO.NET son DataSet, DataReader y DataAdapter. f) El objeto DataAdapter es el objeto que se conecta a la base de datos a travs del objeto Conecction para llenar el objeto DataSet. g) El objeto DataSet basado en XML proporciona un modelo de programacin coherente que funciona con todos los modelos de almacenamiento de datos: sin formato, relacional o jerrquico. Funciona sin tener 'conocimiento' del origen de los datos. h) Aunque el objeto DataSet no tiene conocimiento del origen de sus datos, el proveedor administrado tiene informacin detallada y especfica. La funcin del proveedor administrado es conectar, llenar y almacenar el objeto DataSet desde almacenes de datos (o viceversa). Los proveedores de datos OLE DB y SQL Server de .NET (System.Data.OleDb y System.Data.SqlClient) que forman parte de .Net Framework proporcionan cuatro objetos bsicos: Command, Connection, DataReader y DataAdapter.

IESTP Arturo Sabroso Montoya

jlarico@docentetic.com