Professional Documents
Culture Documents
NET
ADO.NET
n
ADO.NET lo forman un conjunto de clases que implementan el acceso a fuentes de datos a travs de la plataforma .NET. Es una evolucin de ADO que incorpora un nuevo y mejorado modelo de objetos, fuertemente basado en la utilizacin de XML como formato de transmisin de datos. La mayora de las clases de ADO.NET se encuentran en System.Data.
Modelo de objetos
Cliente DataSet DataAdapter Command Managed Provider Connection Fuente de datos DataReader
Modelo de objetos
n
Caractersticas fundamentales:
n
n n
El objeto fundamental que almacena datos en ADO.NET es el DataSet (instancia de System.Data.DataSet). Representa una copia en memoria de la parte de la BD que nos interesa. Un DataSet es una copia desconectada. Los DataSet son inteligentes ya que solo actualizan lo que se ha modificado.
Modelo de objetos
n
El DataSet es una entidad independiente de la fuente de datos a la que se conecta. De la comunicacin con la fuente de datos se encargan los proveedores de datos (managed provider). ADO.NET dispone de una serie de interfaces que deben implementar los proveedores de datos para permitir la comunicacin con los DataSets.
Modelo de objetos
n
Interfaces:
n
IDataReader: Provee un mecanismo de lectura de datos secuencial. No necesita almacenar grandes cantidades de datos ni un gran ancho de banda. (Equivalente al RecordSet) IDBCommand: Representa una sentencia SQL que se ejecuta mientras estamos conectados a una fuente de datos. IDbConnection: Representa una conexin abierta con una fuente de datos.
Modelo de objetos
n
IDBDataAdapter: Representa una serie de mtodos y propiedades de mapeo entre la fuente de datos y el DataSet.
A travs de estas interfaces se consigue que aunque el objeto que utilicemos dependa de el proveedor de datos que estemos utilizando (SQL, ADO...) los mtodos sean los mismos. Tienen el mismo interface pero diferente implementacin.
Modelo de objetos
n
n n
Escalabilidad(DataSet): Disminucin del nmero de conexiones. Aumento de necesidades de ancho de banda y de memoria. Independencia de la fuente de datos. Interoperabilidad: ADO.NET utiliza XML como formato estndar de transmisin de datos. Rendimiento: Superior al de ADO.
El objeto DataSet
DataSet PrimaryKey DataColumn Constraints Constraint Rows DataRow Columns DataColumn ParentRelations DataRelation ChildRelations DataRelation
Tables DataTable
DefaultView View
El objeto DataSet
n
n n
DataSet: Conjunto entero de datos. DataTable: Datos de una tabla. DataRow: Valores de una fila. DataColumn: Datos sobre una columna. DataRelation: Detalles de una relacin entre dos columnas. DataSetView: Detalles de una vista. Constraint: Datos sobre una restriccin.
Proveedores de datos
n
Un proveedor de datos es un conjunto de objetos diseados para permitir la conexin a una fuente de datos particular. .NET incluye dos proveedores:
n
Proveedor de datos SQL, que conecta con SQL Server version 7 o superior. Proveedor de datos OleDb, que conecta con objetos OLE DB (Access, Oracle, Active Directory y LDAP, SQL Server 6.5, 7 y 2000).
Proveedores de acceso
n
Si usamos el proveedor de datos SQL utilizaremos los objetos SQLDataAdapter, SQLConnection, SQLCommand y SQLDataReader del espacio de nombres System.Data.SQLClient. Si usamos el proveedor de datos OleDb utilizaremos los objetos OleDbDataAdapter, OleDbConnection, OleDbCommand y OleDbDataReader del espacio de nombres System.Data.OleDb.
Codificacin
n
Proveedor SQL
string sConnection = "Server=localhost;User ID=sa; Pwd=; Database=northwind"; SqlConnection conn=new SqlConnection(sConnection);
Proveedor OleDb:
string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\\northwind.mdb"; OleDbConnection conn=new OleDbConnection(sConnection);
Codificacin
n
Generacin de la consulta
string query = "SELECT FirstName, LastName FROM Employees"; OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.SelectCommand = new OleDbCommand(query, conn);
Codificacin
n
Acceso a campos
string firstName=datarow[FirstName]; string lastName=dataColumn[2];
Codificacin
n
Modificacin de datos
n
Insercin
n
Con objetos:
DataRow newEmp = dataTable.NewRow(); newEmp[FirstName] = Simon; newEmp[LastName] = Robinson; dataTable.Rows.Add(NewEmp); myBuilder = new SqlCommandBuilder( dataAdapter ); dataAdapter.Update(dataset, Employees);
Con comandos:
dataAdapter.InsertCommand=new SqlCommand(Insert into Employees (FirstName) values (Pedro), conexion);
Codificacin
n
Actualizacin
n
Con objetos
DataRow Emp = dataTable[0].dataRow[0]; Emp[FirstName] = Simon; Emp[LastName] = Robinson; SqlCommandBuilder myBuilder = new SqlCommandBuilder( dataAdapter ); dataAdapter.Update(dataset, Employees);
Con comandos
dataAdapter.UpdateCommand= new SqlCommand (Update Employees set FirstName=Simon, conexion);
Codificacin
n
Borrado
n
Con objetos
DataRow Emp = dataTable[0].dataRow[0]; Emp.Delete(); SqlCommandBuilder myBuilder = new SqlCommandBuilder( dataAdapter ); dataAdapter.Update(dataset, Employees);
Con comandos
dataAdapter.UpdateCommand= new SqlCommand (Update Employees set FirstName=Simon, conexion);
El objeto DataReader
n
Similar a la tecnica de acceso a datos usada en ADO Connexin/RecordSet. Permite acceder a una fuente de datos sin copiarlos en la mquina local. Tan solo recupera datos a los que accederemos de forma secuencial y hacia delante. Funciona estando siempre conectado.
Codificacin
n
Creacin de un DataReader:
n
Elaboracin de la consulta:
string query = "SELECT FirstName, LastName FROM Employees"; SqlCommand myCommand = new SqlCommand(query,conn);
Acceso al DataReader:
myReader.GetString(0) myReader.GetFloat(1) ..................................
Codificacin
n
Comandos:
n