Академический Документы
Профессиональный Документы
Культура Документы
NET y C#
Acceso a Datos
Agenda
01/03/2014
Introduccin a ADO.NET
ADO.NET es un conjunto de clases relacionadas entre s que estn especializadas en ofrecer toda la funcionalidad que un programador necesita para realizar acceso a datos y manejarlos una vez que los ha obtenido. Alto nivel de abstraccin, lo que permite olvidarnos de los detalles de bajo nivel de las bases de datos. Es una tecnologa interoperativa: aparte del almacenamiento y recuperacin de datos, introduce la posibilidad de integrarse con el estndar XML. Proporciona un conjunto de clases de carcter armnico, funcionan de igual forma con la capa inferior que es la que corresponde a los proveedores de acceso a datos. Facilita el trabajo en n-capas y la posible migracin de una fuente de datos a otra.
01/03/2014
Introduccin a ADO.NET
01/03/2014
Introduccin a ADO.NET
System.Data
La clase DataSet Es una representacin de datos residente en memoria que proporciona un modelo de programacin relacional coherente independientemente del origen de datos que contiene. Contiene un conjunto de datos que han sido volcados desde el proveedor de datos. La clase DataView Permite crear mltiples vistas de nuestros datos, adems de permitirnos presentar los datos. Representa los datos de la clase DataTable, permitindonos editar, ordenar y filtrar, buscar y navegar por un conjunto de datos determinado. La clase DataTable Representa una determinada tabla en memoria, de modo que podamos interactuar con ella.
Nota: Existen casos en los que no es recomendable almacenar en memoria (DataSet) todos los resultados de una consulta, bien por ser muchos registros o por contener datos muy grandes. En este tipo de casos se puede usar u objeto DataReader directamente para leer la informacin, tratarla y no almacenarla en lugar alguno. De todos modos lo ms frecuente es realizar el proceso descrito.
01/03/2014
Introduccin a ADO.NET
Proveedores de acceso a datos
.NET Framework proporciona un conjunto de proveedores ODBC .NET Data Provider (System.Data.Odbc) Permite conectar nuestras aplicaciones a fuentes de datos a travs de ODBC. OLE DB .NET Data Provider (System.Data.OleDb) Realiza la conexin utilizando un proveedor OLEDB, al igual que el ADO clsico. Oracle Client .NET Data Provider (System.Data.OracleClient) Proveedor de datos para acceder a Oracle. SQL Server .NET Data Provider (System.Data.SqlClient) Permite la conexin optimizada a SQL Server 7.0 o posterior, incluyendo la ltima versin SQL Server Express Edition.
01/03/2014
Introduccin a ADO.NET
Cada uno de estos posee las clases:
rpida.
01/03/2014
Introduccin a ADO.NET
DataAdapter
Est implementada por cada proveedor de un modo diferente. Sabe cmo manejar correctamente los objetos proporcionados por su proveedor especfico (fundamentalmente los vistos: Connection, Command y DataReader). Proporciona mtodos para transferir informacin desde el servidor a DataSets desconectados y viceversa haciendo uso de dichos objetos especficos del proveedor.
Por ejemplo, el mtodo Fill de un DataSet se utiliza para introducir los resultados de una consulta dentro de un DataSet para luego trabajar con ellos sin preocuparnos de su origen. Del mismo modo su mtodo Update se utiliza para conciliar automticamente con el origen de datos los datos modificados en un DataSet mientras no haba conexin.
01/03/2014
Introduccin a ADO.NET
Otras clases dependientes de DataSet
DataTable: representa una tabla o relacin de datos. Se puede asimilar a una tabla de un gestor de datos. Los datos obtenidos de una consulta de tipo SELECT de SQL se almacenan en un objeto de esta clase.
DataColumn: ofrece informacin sobre cada uno de los campos de los registros almacenados en un DataTable, como su nombre o su tipo. DataRow: representa un registro de la tabla virtual definida por el DataTable. Contiene tantos elementos como campos tiene la tabla, cada uno del tipo definido por el objeto DataColumn correspondiente. Constraint: las clases Constraint se emplean para definir restricciones en los tipos de datos contenidos en un DataTable. DataRelations: define la relacin existente entre dos objetos DataTable. Normalmente se suelen utilizar un identificador comn a ambas tablas aunque pueden ser combinaciones de ms de uno de ellos. De este modo se sabe cmo obtener informacin de una tabla a partir de informacin en otra. DataView: representa una vista concreta de un DataTable. Normalmente se trata de ordenaciones o filtros sobre los datos originales. Todas las tablas disponen de una vista por defecto (propiedad DefaultView) que ofrece los datos tal y como se han introducido en sta y es la vista que se usa habitualmente.
01/03/2014
01/03/2014
10
ExecuteReader: este mtodo lanza la consulta a la base de datos y devuelve una referencia a una instancia de la clase DataReader. Podemos utilizar el DataReader para recorrer los datos y procesarlos.
ExecuteNonQuery: ejecuta la consulta sin devolver resultado alguno. Simplemente enva la consulta al servidor y devuelve el nmero de registros afectados por sta. til para realizar consultas de insercin (INSERT), actualizacin (UPDATE) y borrado (DELETE). ExecuteScalar: lanza la consulta y devuelve un objeto con el valor del primer campo del primer registro que se obtenga de dicha consulta. Es til para lanzar consultas de agregacin como sumas (SUM), cuentas (SELECT COUNT * ....) y similares de las que slo necesitamos un valor como resultado.
01/03/2014
11
01/03/2014
12
La forma correcta de realizar este tipo de consultas es utilizar parmetros en la consulta. Los objetos de tipo Command disponen de una coleccin llamada Parameters que sirve para asignar dichos parmetros. stos previamente se definen en la consulta utilizando comodines que marquen su ubicacin.
SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT * FROM Customers WHERE Country = @Pais"; cmd.Parameters.Add("@Pais", SqlDbType.NVarChar); cmd.Parameters("@Pais").Value = pais;
01/03/2014
13
01/03/2014
14
UPDATE desconectado
ds.Tables[0].Rows[4]["Address"] = "Nueva direccin";
DELETE desconectado
ds.Tables[0].Rows[4].Delete();
01/03/2014
15
SqlCommand cmdDelete = new SqlCommand(); cmdDelete.CommandText = "DELETE FROM Customers WHERE CustomerID = @ID"; cmdDelete.Parameters.AddWithValue("@ID", customerID); da.DeleteCommand = cmdDelete;
01/03/2014
16
01/03/2014
17
SqlDataSource: Enlaza con cualquier base de datos para que exista un proveedor de ADO.NET. AccessDataSource: Esta especializado en trabajar con bases de datos Microsoft Access. ObjectDataSource: Se enlaza con objetos de negocio y capas personalizadas de acceso a datos. XmlDataSource: Trata datos contenidos en documentos XML. SiteMapDataSource: Se enlaza con la jerarqua de clases expuesta por el modelo de navegacin de sitios de ASP.NET.
01/03/2014
18
Concurrencia pesimista
DELETE FROM [Customers] WHERE [CustomerID] = @original_CustomerID
01/03/2014
19
01/03/2014
20
Con l dispondremos de mtodos para recuperar informacin, crear nuevos registros, actualizarlos y eliminarlos, slo que los correspondientes comandos estarn creados de manera automtica o asistindonos en ello. As, por defecto, se definen un par de mtodos para obtener los datos subyacentes rellenando un DataSet que se le pase (mtodo Fill) o devolviendo directamente un DataTable (mtodo GetData). Adems el mtodo Update sirve para conciliar automticamente los cambios del un DataSet tipado con la base de datos original.
01/03/2014
21
Fin Mdulo
01/03/2014
22