Programación III Ing. Héctor Abraham Hernández Guía #13 Fecha: 16/05/2011 Utilizar bases de datos en C# Objetivo: Identificar como se utilazan las bases de datos en C#. QUÉ ES ODBC? ODBC es una abreviatura para la Conectividad abierta de base de datos, y es una interfaz para acceder a bases de datos a través de consultas SQL. El ODBC se puede utilizar como una herramienta de acceso a diferentes bases de datos tales como MS-Access, dbase, DB2, Excel y Texto. QUÉ ES OLE DB? Es una interfaz de programación de aplicaciones (API) basada en COM para el acceso a datos. OLE DB admite el acceso a datos almacenados en cualquier formato (bases de datos, hojas de cálculo, archivos de texto, etc.) para el que haya un proveedor OLE DB disponible. Cada proveedor OLE DB expone datos en un tipo particular de origen de datos (como bases de datos de SQL Server, bases de datos de Microsoft Access u hojas de cálculo de Microsoft Excel). Estructura OLE DB permite separar los datos de la aplicación que los requiere. QUÉ ES ADO.NET? ADO.NET es el sucesor de ADO (ActiveX Data Objects), la biblioteca de acceso a datos de la plataforma COM. Si bien ADO soporta sólo escenarios conectados, puede resultar útil hacer una analogía de las clases más comunes utilizadas en ADO con respecto a sus nuevas versiones en ADO.NET: La clase Connection de ADO tiene su paralelo en las clases XxxConnection de los distintos proveedores de ADO.NET
La clase Command de ADO tiene su paralelo en las clases XxxCommand de los distintos proveedores de ADO.NET La clase Recordset de ADO dejó de existir como tal en ADO.NET. En su lugar existen en ADO.NET las clases XxxDataReader (es lo más parecido a un Recordset read-only forward-only de ADO), y las nuevas clases DataSet y XxxDataAdapter para escenarios desconectados. En la figura se pueden apreciar las clases más comunes que componen a todos los proveedores de acceso a datos de ADO.NET. Nótese que algunos nombres empiezan con las letras Xxx : esto se debe a que los nombres de esas clases varían según el proveedor específico que se esté utilizando. Por ejemplo, la clase que representa una conexión con la base de datos usando el Data Provider For Sql Server es SqlConnection, mientras que si usamos el Data Provider For Oracle podemos obtener la misma funcionalidad de la clase OracleConnection. Mas allá del ejemplo, pasemos a describir cada una de estas clases y su funcionalidad: XxxConnection: representa una conexión. Almacena, entre otras cosas, el string de conexión (connection string), y permite conectarse y desconectarse con una base de datos. XxxCommand: permite almacenar y ejecutar una instrucción SQL contra una base de datos, enviando parámetros de entrada y recibiendo parámetros de salida. Estas dos clases se utilizan tanto en escenarios conectados como desconectados. XxxDataReader: permite acceder a los resultados de la ejecución de un comando contra la base de datos de manera read-only (sólo lectura), forwardonly (sólo hacia adelante). Esta clase se utiliza en escenarios conectados, ya que no es posible operar sobre los registros de un DataReader estando desconectado de la fuente de datos. XxxDataAdapter y DataSet: en conjunto, estas clases constituyen el corazón del soporte a escenarios desconectados de ADO.NET. El DataSet es una representación en memoria de una base de datos relacional, que permite almacenar un conjunto de datos obtenidos mediante un DataAdapter. El DataAdapter actúa como intermediario entre la base de datos y el DataSet local desconectado. Una vez que el DataSet se encuentra lleno con los datos que se necesitan para trabajar, la conexión con la base de datos puede cerrarse sin problemas y los datos pueden ser modificados localmente. Por último, el DataAdapter provee un mecanismo para sincronizar los cambios locales contra el servidor de base de datos. Nótese que la clase System.Data.DataSet no tiene el prefijo Xxx, ya que es independiente del proveedor de acceso a datos utilizado.
Investigar: OleDbConnection OleDbDataAdapter. OleDbCommand. DataSet Ejemplo: 1. Primero crearemos una carpeta en C:\ llamada Sistema. 2. Luego abriremos ACCESS ya seas 2007 o 2010, elegimos base de datos en blanco, y luego cambiamos el nombre de la base de datos y la ruta tal como en la imagen: 3. Luego el botón Crear. 4. Creamos la tabla Usuarios y agregamos los siguientes campos con propiedades tal como se ven en la imagen:
5. Agregamos los datos de ejemplo: 6. Creamos la tabla siguiente: 7. Creamos la tabla Libros:
9. Relacionamos las tablas de la siguiente forma: 8. Y creamos la tabla que nos sirva para realizar la relación:
10. Ahora vamos a crear un proyector en Visual Studio, siempre en la carpeta C:\Sistema, nombralo tal y como se ve en la imagen. 11. Luego cambiemos el nombre del formulario inicial (Form1) a Menu.cs, hacemos el siguiente diseño: a. Agregamos un menustrip y lo modificamos como se ve en la imagen. b. Cambiamos la propiedad name a menu. c. Cambiamos la propiedad IsMdiContainer a True. d. La propiedad Text a MENU PRINCIPAL. e. La propiedad StartPosition a Central Screen. f. Cambiamos el tamaño del formulario. 12. Hacemos doble clic sobre la opción Salir y programamos los siguiente:
AGREGAR UN ORIGEN DE DATOS A UN PROYECTO Para interactuar con un origen de datos, por ejemplo con una base de datos, se debe agregar al proyecto utilizando la ventana de Orígenes de datos que lista los datos a los que el proyecto puede acceder. 1. Selecciona desde el menú Datos la opción Mostrar orígenes de datos. En la ventana orígenes de datos hacer clic sobre Agregar nuevo origen de datos y aparecerá la siguiente ventana: 2. Seleccionar Base de datos y luego siguiente para Elegir la conexión de datos, clic en el botón Nueva Conexión para que aparezca la ventana Agregar conexión:
3. Clic en el botón Cambiar y nos aparecerá la siguiente ventana donde seleccionamos Archivo de base de datos de Microsoft Access, y luego clic en Aceptar: 4. Ahora clic en Examinar, buscaremos la base de datos que hemos creado, cuando ya tenemos la base de datos clic en el botón Probar conexión, si todo está bien aparece tal y como está en la imagen, luego clic en Aceptar en ambas ventanas: 5. Ahora damos clic en Siguiente nos aparecerá la siguiente advertencia, a la cual hacemos clic en Si, para hacer una copia de la base de datos en el proyecto que estamos realizando.
6. Como podremos ver nos aparece el Explorador de Soluciones la base de datos, seleccionamos las opciones tal como se ve en la imagen y clic en finalizar. 7. Ahora vemos que ya estos datos están en el origen de datos, y se ha creado el Dataset de nuestra base de datos en el Explorador de soluciones: