ADO

5,028 views
4,836 views

Published on

diapositiva sobre ADO .NET

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,028
On SlideShare
0
From Embeds
0
Number of Embeds
83
Actions
Shares
0
Downloads
254
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

ADO

  1. 1. ADO .NET .NET
  2. 2. Temario <ul><li>Introducción </li></ul><ul><li>Lenguajes .NET </li></ul><ul><li>ASP .NET </li></ul><ul><li>ADO .NET </li></ul><ul><li>Programación en componentes </li></ul><ul><li>Aplicaciones windows </li></ul><ul><li>XML y Web Services </li></ul>
  3. 3. Introducción <ul><li>ADO.NET es la más reciente en una larga línea de tecnologías de acceso a bases de datos que empezó con la interfaz de programación de aplicaciones (API) de conectividad abierta para bases de datos (ODBC) </li></ul><ul><li>.NET Framework incluye esta nueva tecnología de acceso a datos, la cual es una mejora en la evolución de Microsoft® ActiveX® Data Objects (ADO) </li></ul>
  4. 4. <ul><li>ADO.NET está diseñada para aplicaciones distribuidas que puedan necesitar operar en el Web </li></ul><ul><li>Como parte de .NET Framework, Microsoft ofrece una Biblioteca de clase del marco de trabajo, el cual cubre todas las APIs existentes de Windows y más </li></ul><ul><li>Entre éstas se encuentran los modelos de objeto XML y ADO que se han integrado en un grupo de clases llamado ADO.NET </li></ul>
  5. 5. <ul><li>ADO.NET no es una revisión de ADO sino una forma nueva de manipular datos que se basa en datos desconectados XML </li></ul><ul><li>ADO no proporciona todas las funciones necesarias para desarrollar aplicaciones Web robustas y escalables cuando se usa desde Active Server Pages (ASP) </li></ul><ul><li>Esto es porque el modelo de objetos ADO fomenta las operaciones orientadas a conexiones </li></ul>
  6. 6. Arquitectura ADO.NET
  7. 7. Datasets desconectados <ul><li>ADO.NET ha sido diseñado para funcionar con Datasets desconectados </li></ul><ul><li>Las aplicaciones están conectadas a la fuente de datos sólo lo suficiente para recolectar y actualizar datos </li></ul><ul><li>ADO.NET proporciona una interfaz de acceso a datos para comunicarse con fuentes de datos que cumplen con OLE DB </li></ul><ul><li>Las aplicaciones de uso compartido de datos pueden usar ADO.NET para conectarse a estas fuentes de datos y recuperar, manipular y actualizar datos </li></ul>
  8. 8. <ul><li>Un Dataset es una copia en la memoria de los datos de la base de datos. </li></ul><ul><li>Un Dataset puede contener datos de cualquier cantidad de tablas o vistas de bases de datos. </li></ul><ul><li>El Dataset constituye una vista desconectada de la base de datos porque existe en la memoria sin una conexión activa a una base de datos que contenga las tablas o vistas correspondientes </li></ul>
  9. 9. <ul><li>Un Dataset es como una base relacional miniatura dentro de la memoria. Contiene varias tablas, cada una de las cuales corresponde a una tabla o vista </li></ul><ul><li>En aplicaciones con n niveles, normalmente los datos se pasan desde la BD a un objeto de negocios de nivel medio y luego a la interfaz </li></ul><ul><li>Para acomodar el intercambio de datos, ADO.NET usa persistencia y transmisión con base en XML </li></ul>
  10. 11. ADO vs ADO.NET <ul><li>ADO.NET ofrece dos depósitos de datos, el DataReader y el DataSet </li></ul><ul><li>DataReader es equivalente a un RecordSet en ADO de sólo lectura y de sólo hacia delante </li></ul><ul><li>La analogía más cercana de un DataSet es un RecordSet desconectado, aunque es mucho más que eso </li></ul><ul><li>ADO.NET no tiene equivalente a RecordSets conectados y actualizables de ADO </li></ul>
  11. 12. <ul><li>La clase DataSet tiene una colección de tablas y una colección de relaciones </li></ul><ul><li>Cada tabla en la colección de tablas tiene una colección de columnas y una colección de filas que representan los datos que se mantienen en el DataSet </li></ul><ul><li>Estos objetos representan el esquema del DataSet </li></ul><ul><li>El DataSet puede estar serializado o no hacia o desde XML. </li></ul>
  12. 13. Recorrido de datos <ul><li>Los métodos que utiliza ADO.NET para leer o modificar datos difiere de los métodos de programación que usa ADO </li></ul><ul><li>En ADO, se explora de manera secuencial a través de las filas del RecordSet </li></ul><ul><li>En ADO.NET, se emplea un paradigma de navegación, moviéndose de una fila de una tabla de datos a la fila o filas correspondientes de otra tabla de datos siguiendo la relación </li></ul>
  13. 14. XML como formato datos universal <ul><li>ADO.NET usa XML para garantizar la interoperabilidad de plataformas </li></ul><ul><li>Cuando ocurre la transmisión a través de XML, el receptor ya no tiene que ser un objeto COM </li></ul><ul><li>El componente receptor ya no tiene ninguna restricción arquitectónica </li></ul><ul><li>Cualquier componente de software puede compartir datos ADO.NET siempre y cuando use el mismo esquema XML </li></ul>
  14. 15. Modelo de objetos ADO.NET <ul><li>Sin importar si escribe Web Forms, Windows Forms o servicios Web XML, si cuenta con una fuente de datos en su sistema, ADO.NET siempre presenta el mismo conjunto de clases </li></ul><ul><li>Existen dos partes principales del modelo ADO.NET: Los Proveedores de datos .NET y los objetos ADO.NET </li></ul>
  15. 16. Proveedores de datos .NET <ul><li>Se utiliza para conectarse a bases de datos, ejecutar comandos y recuperar resultados </li></ul><ul><li>El Proveedor de datos .NET está diseñado para ser ligero, creando una capa mínima entre la fuente de datos y su código </li></ul><ul><li>Cuatro objetos centrales componen un Proveedor de datos .NET: Conexión, Comando, Lector de datos y Adaptador de datos </li></ul>
  16. 17. <ul><li>Conexión  Establece una conexión a una fuente específica de datos.   </li></ul><ul><li>Comando  Ejecuta un comando en una fuente de datos. Expone Parámetros y puede enumerar una Transacción desde una Conexión.   </li></ul><ul><li>Lector de datos  Lee un flujo sólo hacia delante y sólo de lectura de datos desde una fuente de datos.   </li></ul><ul><li>Adaptador de datos  Llena un Conjunto de datos y resuelve actualizaciones con la fuente de datos </li></ul>
  17. 18. Microsoft SQL Server .NET Data Provider <ul><li>Utiliza su propio protocolo para comunicarse con SQL Server sin agregar un OLE DB o una capa de ODBC </li></ul><ul><li>Para usarlo necesita incluir el espacio de nombre System.Data.SqlClient </li></ul><ul><ul><li>[Visual Basic] </li></ul></ul><ul><ul><li>Imports System.Data.SqlClient </li></ul></ul><ul><ul><li>[C#] </li></ul></ul><ul><ul><li>using System.Data.SqlClient; </li></ul></ul>
  18. 19. Proveedor de datos .NET de OLE DB <ul><li>Utiliza OLE DB nativo a través de interoperación COM </li></ul><ul><ul><li>[Visual Basic] </li></ul></ul><ul><ul><li>Imports System.Data.OleDb </li></ul></ul><ul><ul><li>[C#] </li></ul></ul><ul><ul><li>using System.Data.OleDb ; </li></ul></ul>
  19. 20. Objetos de ADO.NET <ul><li>Tiene algunos de los mismos objetos que ADO (como Connection y Command) </li></ul><ul><li>Introduce objetos nuevos, como DataSets, DataReaders y DataSetCommands </li></ul>
  20. 21. Objetos de conexión: SqlConnection y OleDBConnection <ul><li>Agregue una referencia a System.Data.SqlClient: </li></ul><ul><li>Imports System.Data.SqlClient </li></ul><ul><li>Cree un objeto SqlConnection al pasar la fuente de datos, la información de seguridad y el catálogo inicial al constructor: </li></ul><ul><li>Dim nwindConn As SqlConnection = New SqlConnection( </li></ul><ul><li>&quot;Data Source=localhost;& Integrated Security=SSPI; </li></ul><ul><li>&quot; & &quot;Initial Catalog=northwind&quot;) </li></ul><ul><li>Abra la conexión: </li></ul><ul><li>nwindConn.Open() </li></ul>
  21. 22. Objetos de comando <ul><li>Representan un comando que se ejecutará contra una fuente de datos. </li></ul><ul><li>Si el comando que se ejecuta devuelve filas de datos, puede utilizar DataReader </li></ul><ul><li>Para comandos SQL, usar SqlDataReader </li></ul>
  22. 23. Métodos de comando <ul><li>ExecuteReader: Ejecuta una consulta SQL o un procedimiento almacenado y devuelve un objeto DataReader </li></ul><ul><li>ExecuteNonQuery: Ejecuta una consulta SQL o un procedimiento almacenado y no regresa registros. </li></ul><ul><li>ExecuteScalar: Recupera un valor único desde una base de datos. </li></ul><ul><li>nwindCmd.CommandText = &quot;Select count(*) as &quot; & </li></ul><ul><li>&quot;NumberOfRegions from region&quot;; </li></ul><ul><li>Int count = (int) nwindCmd.ExecuteScalar(); </li></ul>
  23. 24. Ejecución de comandos SQL <ul><li>Cree un objeto de tipo SqlCommand: </li></ul><ul><li>Dim nwindCmd As SqlCommand = New SqlCommand </li></ul><ul><li>(&quot;Select * from Customers&quot;, nwindConn) </li></ul><ul><li>Ejecute el método ExecuteReader y almacene el flujo de filas en un objeto SQLReader: </li></ul><ul><li>Dim nwindReader As SqlDataReader = </li></ul><ul><li> nwindCmd.ExecuteReader(CommandBehavior.CloseConnection) </li></ul><ul><li>While nwindReader.Read() </li></ul><ul><li>MsgBox(nwindReader.GetString(0)) </li></ul><ul><li>End While </li></ul><ul><li>nwindReader.Close() </li></ul><ul><li>nwindConn.Close() </li></ul>
  24. 25. Objetos DataReader <ul><li>Está diseñado para producir un flujo de sólo lectura y sólo hacia delante desde la base de datos </li></ul><ul><li>El DataReader recupera lotes de registros y los coloca en la memoria caché, recuperando más registros según los necesite </li></ul><ul><li>Un DataReader se devuelve después de ejecutar un comando </li></ul><ul><li>Trabaja de manera similar a un Conjunto de registros en ADO, permitiéndole simplemente recorrer los registros </li></ul>
  25. 26. Ejemplo <ul><li>Dim nwindReader As </li></ul><ul><li>SqlDataReader = nwindCmd.ExecuteReader(CommandBehavior.CloseConnection) </li></ul><ul><li>While nwindReader.Read() MsgBox(nwindReader.GetString(0)) </li></ul><ul><li>End While </li></ul><ul><li>nwindReader.Close() </li></ul>
  26. 27. Objetos DataSet <ul><li>Es una representación de datos que residen en la memoria que proporciona un modelo consistente de programación relacional sin importar la fuente de datos. Como resultado, se puede utilizar con varias fuentes de datos y datos XML, o se puede utilizar para administrar datos locales de la aplicación. </li></ul><ul><li>El DataSet contiene una colección de uno o más objetos DataTable conformados de filas y columnas de datos </li></ul><ul><li>Los datos están en las filas </li></ul>
  27. 28. Objetos DataAdapter <ul><li>Este objeto permite la recuperación y guardado de datos entre un objeto DataSet y el almacén de datos fuente </li></ul><ul><li>Es responsable de jalar los datos desde el almacén físico y colocarlos en las tablas y relaciones de datos </li></ul><ul><li>El objeto DataAdapter también es responsable de transmitir cualquier actualización, inserción o eliminación de la base de datos física </li></ul>
  28. 29. <ul><li>SqlConnection </li></ul><ul><li>nwindConn = new SqlConnection(&quot;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind&quot;); </li></ul><ul><li>SqlCommand selectCMD = new SqlCommand(&quot;SELECT CustomerID, CompanyName FROM Customers&quot;, nwindConn); </li></ul><ul><li>selectCMD.CommandTimeout = 30; </li></ul><ul><li>SqlDataAdapter custDA = new SqlDataAdapter(); </li></ul><ul><li>custDA.SelectCommand = selectCMD; </li></ul><ul><li>nwindConn.Open(); </li></ul><ul><li>DataSet custDS = new DataSet(); </li></ul><ul><li>custDA.Fill(custDS, &quot;Customers&quot;); </li></ul><ul><li>nwindConn.Close(); </li></ul>
  29. 30. Objetos DataView <ul><li>Se usan para mostrar los datos retenidos en un DataSet </li></ul><ul><li>Proporcionan una vista personalizada de tablas de datos </li></ul><ul><li>Son el equivalente de RecordSets desconectados de ADO </li></ul><ul><li>Se pueden usar para especificar criterios de filtrado y clasificación y para buscar y editar un DataSet </li></ul><ul><li>Se pueden crear cualquier número de DataViews para la misma tabla </li></ul>
  30. 31. <ul><li>Cada DataTable en un DataSet tiene una propiedad DefaultView </li></ul><ul><li>Dim dv As DataView </li></ul><ul><li>dv = ds.Tables(&quot;Authors&quot;).DefaultView </li></ul><ul><li>También se pueden filtrar datos </li></ul><ul><li>dv = New DataView (ds.Tables(&quot;Authors&quot;)) </li></ul><ul><li>dv.RowFilter = &quot;state = 'CA'&quot; </li></ul>

×