ADO.NET
ADO.NET
1.
DEFINICIÓN:
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. Es parte de la biblioteca de clases base que están
incluidas en el Microsoft .NET Framework. Es comúnmente usado por los
programadores para acceder y para modificar los datos almacenados en un Sistema
Gestor de Bases de Datos Relacionales, aunque también puede ser usado para
acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como
una evolución de la tecnología ActiveX Data Objects (ADO), pero fue cambiado
tan extensivamente que puede ser concebido como un producto enteramente nuevo.
Información
General:
ADO.NET proporciona acceso coherente a orígenes
de datos como SQL Server y XML, así como a orígenes de datos expuestos mediante
OLE DB y ODBC. Las aplicaciones de
consumidor que comparten datos pueden utilizar ADO.NET para conectar a estos
orígenes de datos y recuperar, controlar y actualizar los datos contenidos.
ADO.NET separa el acceso de la manipulación de
los datos en componentes discretos que se pueden utilizar por separado o
conjuntamente. ADO.NET incluye
proveedores de datos .NET Framework para conectarse a una base de datos,
ejecutar comandos y recuperar resultados.
Los resultados, o bien, se procesan directamente, o bien, se colocan en
un objeto DataSet de ADO.NET con el fin de exponerlos al usuario para un
propósito específico, combinados con datos de varios orígenes, o de pasarlos
entre niveles. El objeto DataSet de
ADO.NET también puede utilizarse independientemente de un proveedor de datos
.NET Framework para administrar datos que son locales de la aplicación o que
proceden de un origen XML.
Las clases de ADO.NET se encuentran en
System.Data.dll y se integran con las clases de XML incluidas en
System.Xml.dll.
ADO.NET proporciona funcionalidad a los
desarrolladores que escriben código administrado similar a la funcionalidad que
los objetos ADO (ActiveX Data Objects) proporcionan a los desarrolladores de
modelo de objetos componentes (COM) nativo.
Se recomienda utilizar ADO.NET, y no ADO, para obtener acceso a datos de
aplicaciones .NET.
ADO.NET proporciona el método más directo de
acceso a datos de .NET Framework. Para
obtener una abstracción de nivel más alto que permita que las aplicaciones
funcionen en un modelo conceptual en vez de en el modelo de almacenamiento
subyacente, vea ADO.NET Entity Framework.
2.
ARQUITECTURA DE ADO.NET:
Tradicionalmente, el procesamiento de datos ha
dependido principalmente de un modelo de dos niveles basado en una conexión. A
medida que aumenta el uso que hace el procesamiento de datos de arquitecturas
de varios niveles, los programadores están pasando a un enfoque sin conexión
con el fin de proporcionar una mejor escalabilidad a sus aplicaciones.
ADO.NET consiste en dos partes primarias:
DATA
PROVIDER:
Estas clases proporcionan el acceso a una
fuente de datos, como Microsoft SQL Server y Oracle. Cada fuente de datos tiene
su propio conjunto de objetos del proveedor, pero cada uno tienen un conjunto
común de clases de utilidad:
Connection: Proporciona una conexión usada para
comunicarse con la fuente de datos. También actúa como Abstract Factory para los
objetos command.
Command: Usado para realizar alguna acción en
la fuente de datos, como lectura, actualización, o borrado de datos
relacionales.
Parameter: Describe un simple parámetro para un
command. Un ejemplo común es un parámetro para ser usado en un procedimiento
almacenado.
DataAdapter: "Puente" utilizado para
transferir data entre una fuente de datos y un objeto DataSet (ver abajo).
DataReader: Es una clase usada para procesar
eficientemente una lista grande de resultados, un registro a la vez.
Los proveedores de datos .NET Framework son
componentes diseñados explícitamente para la manipulación de datos y el acceso
rápido a datos de solo lectura y solo avance. El objeto Connection proporciona
conectividad a un origen de datos. El objeto Command permite tener acceso a
comandos de base de datos para devolver datos, modificar datos, ejecutar
procedimientos almacenados y enviar o recuperar información sobre parámetros.
DataReader proporciona un flujo de datos de alto rendimiento desde el origen de
datos. Por último, el objeto DataAdapter proporciona el puente entre el objeto
DataSet y el origen de datos. DataAdapter utiliza objetos Command para ejecutar
comandos SQL en el origen de datos tanto para cargar DataSet con datos y
reconciliar en el origen de datos los cambios aplicados a los datos incluidos
en el DataSet. Para obtener más información, vea Proveedores de datos .NET
Framework y Recuperación y modificación de datos en ADO.NET.
DATASETS:
Los objetos DataSets, son un grupo de clases
que describen una simple base de datos relacional en memoria, fueron la
estrella del show en el lanzamiento inicial (1.0) del Microsoft .NET Framework.
Las clases forman una jerarquía de contención:
· Un objeto DataSet representa un esquema (o una
base de datos entera o un subconjunto de una). Puede contener las tablas y las
relaciones entre esas tablas.
· Un objeto DataTable representa una sola tabla
en la base de datos. Tiene un nombre, filas, y columnas.
· Un objeto DataView "se sienta sobre"
un DataTable y ordena los datos (como una cláusula "order by" de SQL)
y, si se activa un filtro, filtra los registros (como una cláusula
"where" del SQL). Para facilitar estas operaciones se usa un índice
en memoria. Todas las DataTables tienen un filtro por defecto, mientras que
pueden ser definidos cualquier número de DataViews adicionales, reduciendo la
interacción con la base de datos subyacente y mejorando así el desempeño.
· Un DataColumn representa una columna de la
tabla, incluyendo su nombre y tipo.
· Un objeto DataRow representa una sola fila en
la tabla, y permite leer y actualizar los valores en esa fila, así como la
recuperación de cualquier fila que esté relacionada con ella a través de una
relación de clave primaria - clave extranjera.
· Un DataRowView representa una sola fila de un
DataView, la diferencia entre un DataRow y el DataRowView es importante cuando
se está interactuando sobre un resultset.
· Un DataRelation es una relación entre las
tablas, tales como una relación de clave primaria - clave ajena. Esto es útil
para permitir la funcionalidad del DataRow de recuperar filas relacionadas.
· Un Constraint describe una propiedad de la base
de datos que se debe cumplir, como que los valores en una columna de clave
primaria deben ser únicos. A medida que los datos son modificados cualquier
violación que se presente causará excepciones.
Un DataSet es llenado desde una base de datos
por un DataAdapter cuyas propiedades Connection y Command que han sido
iniciados. Sin embargo, un DataSet puede guardar su contenido a XML
(opcionalmente con un esquema XSD), o llenarse a sí mismo desde un XML,
haciendo esto excepcionalmente útil para los servicios web, computación
distribuida, y aplicaciones ocasionalmente conectadas desconectados.
El DataSet de ADO.NET es una representación de
datos residente en memoria que provee un modelo de programación relacional
consistente e independiente al origen de datos que contiene. Un DataSet
representa un conjunto completo de datos, incluyendo las tablas que contienen,
ordenan y restringen los datos, así como las relaciones entre las tablas.
Hay varias maneras de trabajar con un DataSet,
que se pueden aplicar de forma independiente o conjuntamente. Puede realizar lo
siguiente:
· Crear mediante programación una DataTable,
DataRelation y una Constraint en un DataSet y rellenar las tablas con datos.
· Llenar el DataSet con tablas de datos de un
origen de datos relacional existente mediante DataAdapter.
· Cargar y hacer persistente el contenido de
DataSet mediante XML. Para obtener más información, consulta Utilizar XML en un
DataSet.
También se puede transportar un DataSet
fuertemente tipado mediante un servicio Web XML. El diseño del DataSet lo
convierte en idóneo para el transporte de datos mediante servicios Web XML.
Para obtener información general sobre servicios Web XML, vea XML Web Services
Overview. Para ver un ejemplo de cómo utilizar un DataSet de un servicio Web
XML, vea Consumir DataSet a partir de un servicio Web XML.
El DataSet de ADO.NET está expresamente
diseñado para el acceso a datos independientemente de cualquier origen de
datos. Como resultado, se puede utilizar con múltiples y distintos orígenes de
datos, con datos XML o para administrar datos locales de la aplicación. DataSet
contiene una colección de uno o más objetos DataTable formados por filas y
columnas de datos, así como claves principales, claves externas, restricciones
e información de la relación sobre los datos incluidos en los objetos
DataTable. Para obtener más información, consulta DataSets, DataTables y
DataViews.
En el diagrama siguiente se ilustra la relación
entre un proveedor de datos .NET Framework y un DataSet.
Clases de
ADO .NET:
· System.Data: clases genéricas de datos de ADO .NET, integra
la gran mayoría de clases que habilitan el acceso a los datos de la
arquitectura .NET.
· System.Data.SqlClient: clases del proveedor de datos de SQL Server,
permiten el acceso a proveedores SQL Server en su versión 7.0 y superior.
· System.Data.OleDb: clases del proveedor de datos de OleDB,
permiten el acceso a proveedores .NET que trabajan directamente contra controladores
basados en los ActiveX de Microsoft.
· System.Data.SqlTypes: definición de los tipos de datos de SQL
Server, proporciona la encapsulación en clases de todos los tipos de datos
nativos de SQL Server y sus funciones de manejo de errores, ajuste y conversión
de tipos, etc.
· System.Data.Common:
clases base, reutilizables de ADO .NET,
proporcionan la colección 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 clases compartidas que constituyen el eje central
de ADO.NET, y son las siguientes:
· DataSet: almacén 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.
Representación en ADO .NET de una fila de una tabla de la base de datos.
· DataColumn: contiene la definición de una columna.
Metadatos y datos asociados a su dominio.
· DataRelation: enlace entre dos o más columnas iguales de dos
o más tablas.
· Constraint: reglas de validación de las columnas de una
tabla.
· DataColumnMapping: vínculo lógico existente entre una columna de
un objeto del DataSet y la columna física de la tabla de la base de datos.
· DataTableMapping: vínculo lógico existente entre una tabla del
DataSet y la tabla física de la base de datos.
EJEMPLOS DE ADO.NET:
Los listados de código de este tema muestran
cómo recuperar datos de una base de datos utilizando las tecnologías ADO.NET
siguientes:
Proveedores de datos ADO.NET:
· SqlClient (System.Data.SqlClient)
· OleDb (System.Data.OleDb)
· Odbc (System.Data.Odbc)
· OracleClient (System.Data.OracleClient)
A continuación, se muestra una sencilla aplicación de ADO.NET
que devuelve resultados desde un origen de datos y los escribe en la consola o
en el símbolo del sistema.
a)
Imports
System
Imports
System.Data
Imports
System.Data.SqlClient
Public
Class Program
Public Shared Sub Main()
Dim connectionString As String =
GetConnectionString()
Dim queryString As String = _
"SELECT CategoryID, CategoryName
FROM dbo.Categories;"
Using connection As New
SqlConnection(connectionString)
Dim command As SqlCommand =
connection.CreateCommand()
command.CommandText = queryString
Try
connection.Open()
Dim dataReader As SqlDataReader
= _
command.ExecuteReader()
Do While dataReader.Read()
Console.WriteLine(vbTab
& "{0}" & vbTab & "{1}", _
dataReader(0),
dataReader(1))
Loop
dataReader.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Sub
Private Shared Function
GetConnectionString() As String
' To avoid storing the connection string
in your code,
' you can retrieve it from a
configuration file.
Return "Data
Source=(local);Initial Catalog=Northwind;" _
& "Integrated
Security=SSPI;"
End Function
End
Class
b)
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.VisualBasic
Public Class Sample
Public Shared Sub Main()
Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;" & _
"Integrated Security=SSPI;Initial Catalog=northwind")
Dim catCMD As SqlCommand = nwindConn.CreateCommand()
catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories"
nwindConn.Open()
Dim myReader As SqlDataReader = catCMD.ExecuteReader()
Do While myReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
Loop
myReader.Close()
nwindConn.Close()
End Sub
End Class
RESUMEN:
ADO.NET es la tecnología .NET para interactuar
con fuentes de datos. Tiene varios Data Providers, que permiten la comunicación
con diferentes fuentes de datos, dependiendo de los protocolos que utilizan o
de la base de datos. Independientemente de cuál sea el proveedor de datos que
utilice, utilizará un conjunto similar de objetos para interactuar con un
origen de datos. El objeto SqlConnection le permite administrar una conexión a
un origen de datos. Los objetos SqlCommand le permiten hablar con una fuente de
datos y enviar comandos a ella. Para tener acceso rápido de sólo lectura a
datos, utilice el SqlDataReader. Si deseamos trabajar con datos desconectados,
utilizaremos un DataSet e implementaremos la lectura y escritura desde el
origen de datos con un SqlDataAdapter.
SUMMARY:
ADO.NET is .NET technology for interacting with
data sources. It has several Data Providers, which allow communication with
different data sources, depending on the protocols they use or the database.
Regardless of which data provider you use, you will use a similar set of
objects to interact with a data source. The SqlConnection object allows you to
manage a connection to a data source. SqlCommand objects allow you to talk to a
data source and send commands to it. For quick read-only access to data, use
the SqlDataReader. If we want to work with disconnected data, we will use a
DataSet and implement the read and write from the data source with a
SqlDataAdapter.
RECOMENDACIONES:
La programación en ADO.NET, ha despertado gran
interés y muchas personas se están iniciando en ella. A pesar de tratarse de
una tecnología que facilita enormemente la programación en relación con las
bases de datos, hay algunas dificultades que pueden retrasar el aprendizaje del
programador principiante, entre ellas, aprender el uso adecuado del lenguaje
SQL para realizar las tareas deseadas.
CONCLUSIONES:
ADO.NET es un conjunto de clases que exponen
servicios de acceso a datos para programadores de .NET Framework. ADO.NET
ofrece abundancia de componentes para la creación 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 creación de
clientes de base de datos front-end y objetos empresariales de nivel medio que
utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.
En conclusión ADO.NET es un conjunto de los
componentes del software que pueden ser usados por los programadores para
accesar a datos y que viene a facilitar mucho la vida del programador.
APRECIACIÓN
DEL EQUIPO:
Sabemos que ADO.NET nos permite interactuar con
diferentes tipos de fuentes de datos y diferentes tipos de bases de datos. Sin
embargo, no hay un solo conjunto de clases que le permitan lograr esto
universalmente. Dado que diferentes fuentes de datos exponen diferentes
protocolos, necesitamos una forma de comunicarnos con la fuente de datos
correcta usando el protocolo correcto. Algunas fuentes de datos más antiguas
utilizan el protocolo ODBC, muchas fuentes de datos más recientes usan el
protocolo OleDb y hay más fuentes de datos todos los días que permiten
comunicarse con ellos directamente a través de las bibliotecas de clases .NET
ADO.NET.
ADO.NET proporciona una forma relativamente
común de interactuar con fuentes de datos, pero viene en diferentes conjuntos
de bibliotecas para cada modo en que puede hablar con un origen de datos. Estas
bibliotecas se llaman Proveedores de Datos y usualmente se nombran para el tipo
de protocolo o fuente de datos con el que pueden interactuar. La Tabla 1
enumera algunos proveedores de datos bien conocidos, el prefijo API que
utilizan y el tipo de origen de datos con el que permiten interactuar.
LINKOGRAFÍA:
ü
https://msdn.microsoft.com/es-es/library/e80y5yhx(v=vs.110).aspx
ü
https://es.wikipedia.org/wiki/ADO.NET
ühttps://msdn.microsoft.com/es-es/library/9hyxa35z(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
ü
https://msdn.microsoft.com/es-es/library/27y4ybxw(v=vs.110).aspx
ü
http://csharp-station.com/Tutorial/AdoDotNet/Lesson01
ü
https://es.slideshare.net/LisbethOcaaBueno/adonet-80410969
Comentarios
Publicar un comentario