You are on page 1of 10

Acceso a datos con ADO.

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.

Acceso a datos con ADO.NET

Modelo de objetos
Cliente DataSet DataAdapter Command Managed Provider Connection Fuente de datos DataReader

Acceso a datos con ADO.NET

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.

Acceso a datos con ADO.NET

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.

Acceso a datos con ADO.NET

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.

Acceso a datos con ADO.NET

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.

Acceso a datos con ADO.NET

Modelo de objetos
n

Beneficios del modelo ADO.NET:


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.

Acceso a datos con ADO.NET

El objeto DataSet
DataSet PrimaryKey DataColumn Constraints Constraint Rows DataRow Columns DataColumn ParentRelations DataRelation ChildRelations DataRelation

Tables DataTable

DefaultView View

Acceso a datos con ADO.NET

El objeto DataSet
n

Vamos a ver las diferentes clases:


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

Acceso a datos con ADO.NET

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

Acceso a datos con ADO.NET

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.

Acceso a datos con ADO.NET

Codificacin
n

Conexin a una BD:


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);

Acceso a datos con ADO.NET

Codificacin
n

Apertura y cierre de una conexin:


conn.Open(); conn.Close();

Creacin de un set de datos (DataSet):


n

Generacin de la consulta
string query = "SELECT FirstName, LastName FROM Employees"; OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.SelectCommand = new OleDbCommand(query, conn);

Creacin del DataSet


DataSet dataset = new DataSet(); adapter.Fill(dataset);

Acceso a datos con ADO.NET

Codificacin
n

Acceso a los datos del DataSet


n

Acceso a las tablas


DataTable datatable = dataset.Tables[0];

Acceso a las filas


DataRow datarow = dataTable.Rows[i]

Acceso a las columnas


DataColumn datacolumn = dataTable.Columns[i]

Acceso a campos
string firstName=datarow[FirstName]; string lastName=dataColumn[2];

Acceso a datos con ADO.NET

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);

Acceso a datos con ADO.NET

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);

Acceso a datos con ADO.NET

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);

Acceso a datos con ADO.NET

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.

Acceso a datos con ADO.NET

Codificacin
n

Creacin de un DataReader:
n

Apertura de una conexin:


conn.Open();

Elaboracin de la consulta:
string query = "SELECT FirstName, LastName FROM Employees"; SqlCommand myCommand = new SqlCommand(query,conn);

Creacin del DataReader:


SqlDataReader myReader = myCommand.ExecuteReader();

Acceso al DataReader:
myReader.GetString(0) myReader.GetFloat(1) ..................................

Acceso a datos con ADO.NET

Codificacin
n

Comandos:
n

Insercin, actualizacin y borrado:


OleDbCommand comando = new OleDbCommand("Update TBCanciones set CANArtista='"+strFields[0]+"', CANTitulo='"+strFields[1]+"', CANFormato='"+strFields[2]+"' WHERE CANId="+indice, conexion); comando.ExecuteNonQuery();

You might also like