ADO.NET



“AÑO DEL BUEN SERVICIO AL CIUDADANO”



INGENIERÍA DE SISTEMAS Y TELEMÁTICA
LABORATORIO DE PROGRAMACIÓN I
ADO.NET


AUTORES
MARCHENA HUANUIRE, Greinder Alexis
VASQUEZ VENTURA, Liz Evelin


DOCENTE
PORRO CHULLI, Marco Aurelio

BAGUA GRANDE - AMAZONAS
2017



DEFINICIÓN

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.

ARQUITECTURA DE ADO.NET










Usar de forma remota o calcular las referencias de datos entre niveles y clientes

El diseño del DataSet le permite transportar fácilmente datos a clientes a través del Web mediante servicios Web XML, así como calcular referencias de los datos entre componentes de .NET mediante servicios .NET Remoting. Mediante los mismos servicios, también puede utilizar de forma remota un DataSet con establecimiento inflexible de tipos. Para obtener información general sobre los servicios Web XML, vea Información general acerca de servicios Web XML. Para ver un ejemplo de cómo consumir un DataSet desde un servicio Web XML, vea Consumir DataSet a partir de un servicio Web XML.
En Información general de .NET Remoting encontrará información general sobre los servicios de interacción remota. Tenga en cuenta que los objetos DataTable también pueden utilizarse con servicios de interacción remota, pero no se pueden transportar mediante un servicio Web XML.


DATASET



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.

JERARQUÍA DE HERENCIA


System.Object

  System.ComponentModel.MarshalByValueComponent

    System.Data.DataSet


SINTAXIS EN VISUAL BASIC


<SerializableAttribute>
Public Class DataSet
               Inherits MarshalByValueComponent
               Implements IListSource, IXmlSerializable, ISupportInitializeNotification,
            ISupportInitialize, ISerializable


Usar de forma remota o calcular las referencias de datos entre niveles y clientes.

El diseño del DataSet le permite transportar fácilmente datos a clientes a través del Web mediante servicios Web XML, así como calcular referencias de los datos entre componentes de .NET mediante servicios .NET Remoting. Mediante los mismos servicios, también puede utilizar de forma remota un DataSet con establecimiento inflexible de tipos. Para obtener información general sobre los servicios Web XML, vea Información general acerca de servicios Web XML. Para ver un ejemplo de cómo consumir un DataSet desde un servicio Web XML, vea Consumir DataSet a partir de un servicio Web XML.
En Información general de .NET Remoting encontrará información general sobre los servicios de interacción remota. Tenga en cuenta que los objetos DataTable también pueden utilizarse con servicios de interacción remota, pero no se pueden transportar mediante un servicio Web XML.


EJEMPLOS

Option Explicit On
Option Strict On
 
Imports System.Data
Imports system.Data.SqlClient
 
Public Class NorthwindDataSet
 
    Public Shared Sub Main()
        Dim connectionString As String = _
            GetConnectionString()
        ConnectToData(connectionString)
    End Sub
 
    Private Shared Sub ConnectToData( _
        ByVal connectionString As String)
 
        ' Create a SqlConnection to the Northwind database.
        Using connection As SqlConnection = New SqlConnection( _
           connectionString)
 
            ' Create a SqlDataAdapter for the Suppliers table.
            Dim suppliersAdapter As SqlDataAdapter = _
               New SqlDataAdapter()
 
            ' A table mapping names the DataTable.
            suppliersAdapter.TableMappings.Add("Table", "Suppliers")
 
            ' Open the connection.
            connection.Open()
            Console.WriteLine("The SqlConnection is open.")
 
            ' Create a SqlCommand to retrieve Suppliers data.
            Dim suppliersCommand As SqlCommand = New SqlCommand( _
               "SELECT SupplierID, CompanyName FROM dbo.Suppliers;", _
               connection)
            suppliersCommand.CommandType = CommandType.Text
 
            ' Set the SqlDataAdapter's SelectCommand.
            suppliersAdapter.SelectCommand = suppliersCommand
 
            ' Fill the DataSet.
            Dim dataSet As DataSet = New DataSet("Suppliers")
            suppliersAdapter.Fill(dataSet)
 
            ' Create a second SqlDataAdapter and SqlCommand to get
            ' the Products table, a child table of Suppliers. 
            Dim productsAdapter As SqlDataAdapter = _
                New SqlDataAdapter()
            productsAdapter.TableMappings.Add("Table", "Products")
 
            Dim productsCommand As SqlCommand = New SqlCommand( _
               "SELECT ProductID, SupplierID FROM dbo.Products;", _
               connection)
            productsAdapter.SelectCommand = productsCommand
 
            ' Fill the DataSet.
            productsAdapter.Fill(dataSet)
 
            ' Close the connection.
            connection.Close()
            Console.WriteLine("The SqlConnection is closed.")
 
            ' Create a DataRelation to link the two tables
            ' based on the SupplierID.
            Dim parentColumn As DataColumn = _
               dataSet.Tables("Suppliers").Columns("SupplierID")
            Dim childColumn As DataColumn = _
               dataSet.Tables("Products").Columns("SupplierID")
            Dim relation As DataRelation = New _
               System.Data.DataRelation("SuppliersProducts", _
               parentColumn, childColumn)
            dataSet.Relations.Add(relation)
 
            Console.WriteLine( _
               "The {0} DataRelation has been created.", _
               relation.RelationName)
        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




CLASES Y OBJETOS DE ADO.NET
CLASES BÁSICAS:
OBJETOS ADO.NET
Las clases de ADO.NET están definidas en el espacio de nombres System.Data.
Trabaja en modo desconectado: El programa no requiere una conexión persistente con la BD.
La conexión se abre y se cierra cuando se necesita.
OBJETOS DEL PROVEEDOR
Todos los objetos llevan el prefijo único del proveedor: SqlXxxxxxx, OleDbXXXXXX, etc.
Connection. Establece la conexión con el origen de datos. SqlConnection, OdbcConnection,…
Command. Recupera datos del proveedor. (SELECT * FROM…).
Ejm: SqlCommand, OdbcCommand, OleDbCommand. 
CommandBuilder. Permite hacer consultas SQL para modificar datos de objetos basados en una sola tabla. Ejm: SqlCommandBuilder, OdbcCommandBuilder.
DataReader. Permite recuperar datos de sólo lectura y sólo hacia delante de un origen de datos. Ejm: SqlDataReader, OdbcDataReader.
DataAdapter. Representa un conjunto de comandos SQL y una conexión al origen de datos para rellenar el objeto DataSet y actualizar los datos. Ejm: SqlDataAdapter.
EJEMPLOS

SQLCLIENT

En el código de este ejemplo se supone que puede conectarse a la base de datos de ejemplo 
Northwind en Microsoft SQL Server. El código crea un SqlCommand para seleccionar las filas
de la tabla Products, agregar un SqlParameter para restringir los resultados a las filas con un
UnitPrice mayor que el valor de parámetro especificado, en este caso 5. El SqlConnection se
abre dentro de un using bloque, lo que garantiza que los recursos se cierran y se eliminan
cuando el código sale. El código ejecuta el comando mediante una SqlDataReadery muestra
los resultados en la ventana de consola.
[DataWorks SampleApp.SqlClient#1](../CodeSnippet/VS_Snippets_ADO.NET/DataWorks SampleApp.SqlClient#1)]
[Inicio]

OLEDB

En el código de este ejemplo se asume que puede conectarse a la base de datos de ejemplo Northwind
de Microsoft Access. El código crea un OleDbCommand para seleccionar las filas de la tabla Products, agregar un OleDbParameter para restringir los resultados a las filas con
un UnitPrice mayor que el valor de parámetro especificado, en este caso 5.
El OleDbConnection se abre dentro de un using bloque, lo que garantiza que los recursos
se cierran y se eliminan cuando el código sale. El código ejecuta el comando mediante una 
OleDbDataReadery muestra los resultados en la ventana de consola.
[DataWorks
SampleApp.OleDb#1](../CodeSnippet/VS_Snippets_ADO.NET/DataWorks SampleApp.OleDb#1)]
[Inicio]

ORACLECLIENT

En el código de este ejemplo se presupone una conexión a DEMO.CUSTOMER en un servidor Oracle.
También debe agregarse una referencia a System.Data.OracleClient.dll. El código devuelve los datos en un OracleDataReader.
[DataWorks SampleApp.Oracle#1](../CodeSnippet/VS_Snippets_ADO.NET/DataWorks SampleApp.Oracle#1)]
[Inicio]
RESUMEN
 La tecnología ADO.NET, integrada en .Net Framework, es el siguiente estado de evolución de
ADO  Se diseñó teniendo en cuenta los modelos multinivel, la independencia y el estándar XML.
Para estos escenarios se proporcionan dos objetos nuevos, DataSet y DataAdapter.  Se puede
utilizar ADO.NET para obtener datos de una secuencia o para almacenar datos en una memoria
caché a fin de realizar actualizaciones.
 La documentación contiene mucha más información acerca de ADO.NET.  Hay que tener en
cuenta que se puede ejecutar un comando directamente en la base de datos para realizar
inserciones, actualizaciones y eliminaciones. Para insertar, actualizar o eliminar datos no hay
que colocarlos primero en un objeto DataSet  además, se puede utilizar un objeto DataSet 
para enlazar con los datos, examinarlos y explorar sus relaciones.
RECOMENDACIONES
Trabajar con varias tablas   Un conjunto de datos puede contener varias tablas de resultados,
que se mantienen como objetos discretos. Puede trabajar con las tablas individualmente o navegar
por ellas como tablas primarias y secundarias.
Manipular datos de varios orígenes   Las tablas de un conjunto de datos pueden representar datos
de varios orígenes distintos (por ejemplo, de diferentes bases de datos, archivos XML, hojas de
cálculo, etc., todos en el mismo conjunto de datos). Una vez que los datos se encuentran en el
conjunto de datos, puede manipularlos y relacionarlos en un formato homogéneo como si vinieran de un único origen.
Mover datos entre niveles en una aplicación distribuida   Al mantener los datos en un conjunto
de datos, puede moverlos fácilmente entre el nivel de presentación, el nivel comercial y el nivel de
datos de las aplicaciones.
Intercambio de datos con otras aplicaciones   Un conjunto de datos proporciona una manera
eficaz para intercambiar datos con otros componentes de la aplicación y con otras aplicaciones.
Los conjuntos de datos incluyen compatibilidad ampliada para funciones como la serialización
de datos en XML y la lectura y escritura de esquemas XML.
Enlazar datos   Si está trabajando con formularios, normalmente es más fácil enlazar controles a
datos en un conjunto de datos que cargar mediante programación los valores de los datos en el control después de ejecutar un comando.
Mantener registros para su nueva utilización   Un conjunto de datos permite trabajar con los
mismos registros repetidas veces sin necesidad de consultar la base de datos. Usando las funciones
de los conjuntos de datos, se pueden filtrar y ordenar los registros, y se puede usar un conjunto
de datos como origen de datos si se está paginando.
Fácil de programar   Cuando trabaja con un conjunto de datos, puede generar un archivo de clase
que represente su estructura como objetos (por ejemplo, es posible tener acceso a una tabla Customers
del conjunto de datos como el objeto dataset.Customers). Esto hace la programación más fácil, clara
y con menor probabilidad de error, y es compatible con herramientas de Visual Studio como
IntelliSense, el Asistente para la configuración del adaptador de datos, etc.

CONCLUSIÓN

ADO .NET está diseñado para fundamentarse en la fuerza del modelo de programación de ADO,
mientras que provee una evolución en la tecnología de acceso a datos para responder a las necesidades cambiantes del desarrollador. Está diseñado para fortalecer tus conocimientos
de ADO, mientras que provee un control más fino sobre los componentes, recursos y
comportamiento de tu aplicación cuando accede y trabaja con datos.

BIBLIOGRAFÍA

Ceballos,
G. R. (s.f). microsoft.com. Obtenido de microsoft.com:
microsoft. (Octubre de 2016). microsoft.com.
Obtenido de microsoft.com:
microsoft. (s.f). microsoft.com.
Obtenido de microsoft.com:
Pellicer, J. L. (s.f). users.dsic.upv.es.
Obtenido de users.dsic.upv.es:
Tito, M. (s.f). monografias.com.
Obtenido de monografias.com:
Tito, M. (s.f). monografias.com.
Obtenido de monografias.com:
wikipedia. (26 de Noviembre de 2015). wikipedia.org.
Obtenido de wikipedia.org: https://es.wikipedia.org/wiki/ADO.NET
LINK DE NUESTRAS DIAPOSITIVAS:

Comentarios

Entradas populares de este blog

Espacio de Nombre System.Data.SQLClient

OBJETO SQLCOMMAND