sábado, 7 de octubre de 2017

ADO.NET


INGENIERÍA DE SISTEMAS Y

TELEMÁTICA




AREA: LABORATORIO DE PROGRAMACIÓN III

              DOCENTE: ING. MARCO PORRO CHULLI

TEMA: ADO.NET

              INTEGRANTES:

Ø  INGRID LESLY CORONEL ACUÑA

Ø  CRISTHIAN SERGIO KAYAP YAGKIKAT


ADO.NET

              1 . CONTENIDO

1.1.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.

1.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.

1.3.Componentes de ADO.NET













       
Los componentes de ADO.NET están diseñados para separar el acceso a datos de la manipulación de datos. ADO.NET tiene dos componentes principales que cumplen esta función: el DataSet y el proveedor de datos de .NET Framework, que es un conjunto de componentes entre los que se incluyen los objetos  Connection, Command, DataReader y DataAdapter.



1.4.DATASET
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 información sobre claves principales, claves externas, restricciones y de relación relacionada con 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.









1.5.ELEGIR UN DATAREADER O UN DATASET

A la hora de decidir si su aplicación debe utilizar un DataReader (vea Recuperar datos mediante DataReader) o un DataSet (vea DataSets, DataTables y DataViews), debe tener en cuenta el tipo de funcionalidad que su aplicación requiere. Use un DataSet para hacer lo siguiente:
Almacene datos en la memoria caché de la aplicación para poder manipularlos. Si solamente necesita leer los resultados de una consulta, el DataReader es la mejor elección.
Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web XML.
Interactuar con datos dinámicamente, por ejemplo para enlazar con un control de Windows Forms o para combinar y relacionar datos procedentes de varios orígenes.
Realizar procesamientos exhaustivos de datos sin necesidad de tener una conexión abierta con el origen de datos, lo que libera la conexión para que la utilicen otros clientes.
Si no necesita la funcionalidad proporcionada por el DataSet, puede mejorar el rendimiento de su aplicación si utiliza el DataReader para devolver sus datos de solo avance y de solo lectura. Aunque DataAdapter utiliza DataReader para rellenar el contenido de un DataSet (vea Rellenar un conjunto de datos desde un objeto DataAdapter), al utilizar el DataReader puede mejorar el rendimiento porque no usará la memoria que utilizaría el DataSet, además de evitar el procesamiento necesario para crear y rellenar el contenido de DataSet.

1.6.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.
Además de estas clases, existe otro grupo de clases, las clases específicas de un proveedor de datos. Estas clases forman parte de lo específico de un fabricante de proveedores de datos .NET. Tienen una sintaxis de la forma XxxClase donde "Xxx" es un prefijo que determina el tipo de plataforma de conexión a datos. Se definen en dos NameSpaces: System.Data.SqlClient y System.Data.OleDb.
En la siguiente tabla se ofrece una descripción de las clases que podemos encontrar en estos espacios de nombres.
Clase Descripción SqlConnection Clase que representa la etapa de conexión a un proveedor OleDbConnection de datos. Encapsula la seguridad, pooling de conexiones,
etc.
SqlCommand Clases que representan un comando SQL contra un OleDbCommand sistema gestor de datos. SqlCommandBuilder Generador de comandos SQL de inserción, modificación y OleDbCommandBuilder borrado desde una consulta SQL de selección de datos. SqlDataReader Un lector de datos de sólo avance, conectado a la base de OleDbDataReader datos. SqlDataAdapter Clase adaptadora entre un objeto DataSet y sus OleDbDataAdapter operaciones físicas en la base de datos (select,insert,update y delete). SqlParameter Define los parámetros empleados en la llamada a OleDbParameter procedimientos almacenados. SqlTransaction Gestión de las transacciones a realizar en la base de datos. OleDbTransaction
Para aquellos conocedores de ADO en alguna de sus versiones anteriores podemos hacer una analogía o comparación entre las antiguas clases de ADO y las nuevas de ADO .NET, en la Figura 3 se puede ver esta aproximación.



1.7.EJEMPLOS:

The following example consists of several methods that, combined, create and fill a T:System.Data.DataSet from the Northwind database
using System;
using System.Data;
using System.Data.SqlClient;

namespace Microsoft.AdoNet.DataSetDemo
{
    class NorthwindDataSet
    {
        static void Main()
        {
            string connectionString = GetConnectionString();
            ConnectToData(connectionString);
        }

        private static void ConnectToData(string connectionString)
        {
            //Create a SqlConnection to the Northwind database.
            using (SqlConnection connection =
                       new SqlConnection(connectionString))
            {
                //Create a SqlDataAdapter for the Suppliers table.
                SqlDataAdapter adapter = new SqlDataAdapter();

                // A table mapping names the DataTable.
                adapter.TableMappings.Add("Table", "Suppliers");

                // Open the connection.
                connection.Open();
                Console.WriteLine("The SqlConnection is open.");

                // Create a SqlCommand to retrieve Suppliers data.
                SqlCommand command = new SqlCommand(
                    "SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
                    connection);
                command.CommandType = CommandType.Text;

                // Set the SqlDataAdapter's SelectCommand.
                adapter.SelectCommand = command;

                // Fill the DataSet.
                DataSet dataSet = new DataSet("Suppliers");
                adapter.Fill(dataSet);

                // Create a second Adapter and Command to get
                // the Products table, a child table of Suppliers.
                SqlDataAdapter productsAdapter = new SqlDataAdapter();
                productsAdapter.TableMappings.Add("Table", "Products");

                SqlCommand productsCommand = 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.
                DataColumn parentColumn =
                    dataSet.Tables["Suppliers"].Columns["SupplierID"];
                DataColumn childColumn =
                    dataSet.Tables["Products"].Columns["SupplierID"];
                DataRelation relation =
                    new System.Data.DataRelation("SuppliersProducts",
                    parentColumn, childColumn);
                dataSet.Relations.Add(relation);
                Console.WriteLine(
                    "The {0} DataRelation has been created.",
                    relation.RelationName);
            }
        }

        static private string GetConnectionString()
        {
            // 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";
        }
    }
}


2.  RESUMEN

Los objetos DataSets describen una simple base de datos relacional en memoria. Un objeto DataSet puede contener tablas y relaciones entre esas tablas. Un objeto DataTable representa una tabla. Tiene un nombre, filas, y columnas. Cada DataTable contiene datos de un único origen y está formado por una colección de objetos DataColumn y una colección de objetos Constraint (UniqueConstraint y ForeignKeyConstraint). Un objeto DataView ordena los datos de un DataTable (como "order by") y, si se lo pide, filtra los registros (como "where"). Todas las DataTables tienen un solo filtro, pero pueden tener cualquier número de DataViews adicionales. Un DataColumn representa una columna de una DataTable, incluyendo su nombre y tipo. Un DataRow representa una fila de una DataTable. Permite leer y actualizar los valores en esa fila. También recupera cualquier fila que esté relacionada a ella a través de una clave primaria/extranjera. Un DataRowView representa una fila de un DataView. Un DataRelation es una relación entre DataTables, tal como una relación de clave primaria - clave ajena. Esto es útil para permitir la funcionalidad del DataRow de recuperar filas relacionadas. Un Constraint es una restricción. A medida que los datos son modificados, cualquier violación a las constraint causará excepciones. Un DataSet es llenado desde una base de datos por un DataAdapter cuyas propiedades Connection y Command han sido iniciados. 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.

3.    SUMMARY


DataSets objects describe a simple relational database in memory. A DataSet object can contain tables and relationships between those tables. A DataTable object represents a table. It has a name, rows, and columns. Each DataTable contains data from a single source and consists of a collection of objects. DataColumn and a collection of objects. Restriction (UniqueConstraint and ForeignKeyConstraint). A DataView object sorts data from a DataTable (such as "sort by") and, if prompted, to filter the records (such as "where"). All DataTables have a single filter, but they can have any number of additional DataViews. A DataColumn represents a column of a DataTable, including its name and type. A DataRow represents a row of a DataTable. Read and update the values ​​in that row. It also retrieves any row that is related to it through a primary / foreign key. A DataRowView represents a row in a DataView. A DataRelation is a relationship between DataTables, such as a primary key-foreign key relationship. This is useful to allow DataRow functionality to retrieve related rows. A Constraint is a restriction. As the data is modified, any violation of the restrictions will cause exceptions. A DataSet is populated from a database by a DataAdapter whose Connection and Command properties have been started. A DataSet can save its content to XML (optionally with an XSD schema), or fill itself out from an XML, making exceptionally useful use for web services, distributed computing, and occasionally connected applications.

4.    RECOMENDACIONES

Ø  En ADO.NET se supone que hay un modelo de acceso a datos en el que se puede abrir una conexión, obtener datos o realizar una operación y cerrar luego la conexión. ADO.NET proporciona dos estrategias básicas de trabajo con este modelo. Una de ellas consiste en almacenar datos en un conjunto de datos, que es una caché almacenada en memoria de los registros con los que se puede trabajar mientras se está desconectado del origen de datos. Para usar un conjunto de datos, se crea una instancia del mismo y, a continuación, se usa un adaptador de datos para rellenarlo desde el origen de datos. Posteriormente, se trabaja con los datos del conjunto de datos, por ejemplo, enlazando controles con los miembros de dicho conjunto. Para obtener más información, vea Información general sobre conjuntos de datos en Visual Studio.

Ø  Una estrategia alternativa consiste en realizar operaciones directamente en la base de datos. En este modelo, se usa una consulta de TableAdapter o un comando de datos que incluye una instrucción SQL o una referencia a un procedimiento almacenado. A continuación, se puede ejecutar la consulta para realizar la operación. Para obtener más información, vea Buscar datos en la aplicación.



5.    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.



             6.  GLOSARIO

o   Connection
o   Command
o   DataReader
o   DataSet
o   DataAdapter
o   AdoOverview1.aspx
o   Northwind
o   GetChanges


             7.  LINKOGRAFÍA


LINK DE DIAPOSITIVA
https://es.slideshare.net/INGRIDLESLYCORONELAC/adonet-80569092







No hay comentarios:

Publicar un comentario