Vous êtes sur la page 1sur 38

Microsoft .

NET Framework
Web Services User Interface

Data and XML ADO.NET Base Classes Common Language Runtime XML ... ...

ADO
Microsoft ActiveX Data Objects Conu pour un accs connect Li au modle de donnes physique Le RecordSet est un conteneur de donnes. Le RecordSet est une (1) table qui contient toutes les donnes
Rcuprer les donnes de plusieurs tables exige une jointure SQL ( JOIN ) Les donnes sont aplaties: perte des relations, la navigation est squentielle

ADO.NET
Conu pour un accs dconnect Avoir une modlisation logique des donnes Le DataSet remplace le RecordSet DataSet peut contenir plusieurs tables
Rcuprer les donnes de plusieurs tables ou de source ne ncessite pas un JOIN SQL. Les relations sont conserves: la navigation est relationnelle

Les donnes sont lies un schma XML Pas de conversions de type de donnes requises

Avantages
Avec un mode connect, la connexion est permanente, par consquence les donnes sont toujours jour. De plus il est facile de voir quels sont les utilisateurs connects et sur quoi ils travaillent. Enfin, la gestion est simple, il y a connexion au dbut de lapplication puis dconnexion la fin.

Inconvnients
Linconvnient se trouve surtout au niveau des ressources. En effet, tous les utilisateurs ont une connexion permanente avec le serveur. Mme si lutilisateur ny fait rien la connexion gaspille beaucoup de ressource entrainant aussi des problmes daccs au rseau.

Avantage
Il est possible de brancher un nombre important dutilisateurs sur le mme serveur. En effet, ils se connectent le moins souvent et durant la plus courte dure possible. De plus, avec cet environnement dconnect, lapplication gagne en performance par la disponibilit des ressources pour les connexions.

Inconvnients
Les donnes ne sont pas toujours jour, ce qui peut aussi entrainer des conflits lors des mises jour. Il faut aussi penser prvoir du code pour savoir ce que va faire lutilisateur.

L'interoprabilit par l'utilisation du langage XML (plus tard!)


Standard ouvert : Open Standard. Utilis en interne mais accessible de l'extrieur
Utilisation de lXML pour lire, crire et transfrer des donnes

volution grce la dconnexion DataSet


Les Connexions ne sont pas maintenues pendant de longues priodes Fonctionne de la faon dont fonctionne le Web: "Hit and Run!"

Maintenance
Sparation de Data-Logic et User Interface

ADO.NET Founisseur

DataSet
DataTableCollection
DataTable
DataRowCollection DataColumnCollection ConstraintCollection

Connection
Transaction

DataAdapter

SelectCommand
InsertCommand UpDateCommand DeleteCommand

Command
Parameters

DataReader

DataRelationCollection

Base de donnes

XML

il existe quatre types de fournisseurs :


SQL Server Oracle OLE DB ODBC

Une collection de classes pour accder aux data sources:


Microsoft SQL Server 2000/2005/2008, SQL Server 7, and MSDE, SQL Express OLE Database (OLE DB) providers
Ex: Oracle, JET, SQL OLE DB Providers

Etablie la connexion entre un DataSets et une data stores

Deux .NET data providers:


ADO: via le namespace System.Data.OleDb SQL Server: via le namespace System.Data.SqlClient

System.Data.OleDb est le .NET data provider

UI Applications

SQL Server

OLE DB

ODBC

ORACLE

API SQL

API OLE DB

API ODBC

API ORACLE

SQL Server

Ole DB

ODBC

ORACLE

ADO.NET

System.Data

.SqlTypes

.SqlClient

.Common

.OleDb

.Common
Regroupe les classes partages

System.Data
.SqlClient SqlCommand SqlConnection SqlDataReader SqlDataAdapter .OleDb OleDbCommand OleDbConnection OleDbDataReader OleDbDataAdapter

Reprsente une session unique avec une data source Create, open, close, connection a la data source Fonctionnalits & mthodes pour les transactions OleDbConnection example:
String conStr="Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=NWIND_RW.MDB"; OleDbConnection aConn = new OleDbConnection(conStr); aConn.Open(); // Execute Queries using OleDbDataAdapter Class aConn.Close();

Bridge entre le DataSet et la data store


Hrite de la classe DataAdapter

Moyen pour modifier le DataSet et la data source

data store

DataAdapter

DataSet

Bridge entre le DataTable et la data store Moyen pour modifier le DataTable et la data source

Table store

TableAdapter

DataTable

Proprits:
DeleteCommand: reprsenta la commande delete SQL InsertCommand: Gets & sets insert command SelectCommand: Gets or sets select command UpdateCommand: Gets or sets update command TableMappings: Mapper table SQL <=> DataTable
OleDbCommands

rcupre ou affecte la proprit

command Implmente les mthodes de la class DataAdapter:


public abstract int Fill( DataSet dataSet ); public abstract int Update( DataSet dataSet );

Reprsente la requte a excut dans la data source


Requte SQL ou stored procedure.

Proprits:
Connection: Get & Set the data source connection CommandText: Get & Set the query (text) command
Texte SQL ou le nom dune stored procedure.

CommandType: Get & Set linterprtation de la command.


Text, StoredProcedure, TableDirect

CommandTimeout: connection timeout Parameters

Modle de programmation Lightweight


Plus simple a lutilisation que lobjet OleDbDataAdapter

Instanciation avec la mthode : OleDbCommand.ExecuteReader() Fixe la OleDbCommand jusqu la fin de la lecture des donnes.

Properiets:
FieldCount: Retourne le nombre de line dans le

result set .
RecordsAffected: Nombre de line affectes par

la commande.

Methodes pour rcuprer les donnes:


Suivant la column type and/or index: GetValue; GetString; etc. Read(): Avancer au record suivant. GetValues(): Gets la line courante.

// Code for creating the OleDbConnection adoConn not shown String conStr="Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=NWIND_RW.MDB"; OleDbConnection adoConn = new OleDbConnection(conStr); String myQuery = SELECT * FROM Customers; OleDbCommand myCmd = new OleDbCommand( myQuery,adoConn ); adoConn.Open(); // Declare the OleDbDataReader & // then instantiate it with ExecuteReader(...) ... OleDbDataReader reader = myCmd.ExecuteReader(); // Always call Read before accessing data. while( reader.Read() ) { Object [] cols = new Object[10] ; reader.GetValues( cols ); Console.WriteLine( cols[0].ToString() + " | " + cols[1] ); } // Always Close the reader and the connection when done reader.Close(); adoConn.Close();

Contient la base de lADO.NET Fournit les moyens pour travailler sur et avec vos donnes!
Les classes et les mthodes pour manipuler vos donnes Capacit crer des vues sur vos donnes Des moyens pour reprsenter logiquement vos donnes Permet l'utilisation de XML pour visualiser, partager et stocker des donnes

System.Data
DataSet DataTable

DataRow
DataColumn DataRelation
DataViewManager

Contient les classes principales de LADO.NET Cache en mmoire des donnes Cache en mmoire d'une table Utilis pour manipuler une ligne dans un DataTable Utilis pour dfinir les colonnes dans un DataTable Utilis pour relier 2 DataTable
Utilis pour crer des vues sur DataSets

DataSet

Tables
DataTable
Row(s)

DataView
DataViewManager
DataViewSettings
DataViewSetting DataViewSetting

Relations
DataRelation DataRelation

Column(s)
Constraint(s)

DataTable
DataTable

Un cache mmoire des donnes provenant d'une source de : (Base de donnes relationnelle, fichiers, ) Faon commune de reprsenter et manipuler des donnes
Conteneur de donnes universel Pas seulement pour une utilisation avec les bases de donnes

Une reprsentation des donnes physique - logique Conu pour tre dconnect de la source de donnes
Connecter, excuter une requte, dconnecter

Peut utiliser XML


Pour lire et crire des donnes XML Pour lire et crire un XML Schema

Les collections sont utilises pour ajouter et supprimer des tables et relations

Proprits d'intrt :
Tables: Renvoie une collection de DataTable Relations: Renvoie une collection de DataRelation Namespace: Obtient ou dfinit l'espace de noms du DataSet

partir des simples Proprits :


myDataSet.Tables.Add( myTable ); myDataTableCollection = myDataSet.Tables

Peut tre mappes sur une table physique dune source de donnes Peuvent tre relis les uns aux autres par le biais de DataRelations Proprits d'intrt t:
Columns: Renvoie ColumnsCollection de DataColumn Rows: Renvoie une collection de DataRow de type RowsCollection ParentRelations: Renvoie une RelationsCollection Constraints: Renvoie la table de ConstraintsCollection DataSet: Renvoie le DataSet de DataTable en question PrimaryKey: Renvoie DataColumns qui composent la cl primaire de la table

Conteneur Universel de donnes

DataSet: non seulement pour


une base de donnes

Crer un DataTable et ajoutez-le un DataSet


DataSet ds = new DataSet();
// Create DataTable object: Customers. DataTable dt = new DataTable("Customers"); // Create and add columns to the table // 1. Explicitly create and Add a DataColumn DataColumn dc; dc = new DataColumn("CustID", Type.GetType("System.Int16")); dt.Columns.Add(dc); // 2. Implicitly Create and Add columns (DataColumn). dt.Columns.Add("First_Name", Type.GetType("System.String")); dt.Columns.Add("Last_Name"); // Add the DataTable object to the DataSet ds.Tables.Add(dt);

Utilis pour crer des relations logiques entre les donnes.


Crer des relations entre deux (2) objets DataTable. Ncessite lobjet DataColumn pour chaque DataTable Le DataType des DataColumns doit tre le mme.
Impossible de relier un objet Int32 DataColumn avec String DataColumn

La relation est nomme (par vous!)


DataRelation dr = new DataRelation( myRelation,...)

Permet la navigation relationnelle RelationsCollection collection de DataRelation


Accessible via la proprit Relations du DataSets

// Building on the DataTable example earlier... // Get the DataTable DataColumns we want to relate... DataColumn parentCol, childCol; parentCol= ds.Tables["Customers"].Columns["CustID"]; childCol = ds.Tables["Orders].Columns["CustID"]; // Create DataRelation with the name CustomerOrders... DataRelation dr = new DataRelation("CustomersOrders", parentCol, childCol); // Add the relation to the DataSet... ds.Relations.Add( dr );

Reprsente une vue personnalise du DataTable Crer des vues multiples sur lobjet DataTable Bindable avec les contrles dinterface Proprits:
Table: Rfrence sur lobjet DataTable associ. Sort: Get & Set les colonnes de trie. RowFilter: Obtient ou dfinit l'expression utilise pour filtrer les lignes qui s'affichent dans le DataView.

// Code for myTable Customers with Name column not shown DataView view1 = new DataView( myTable ); DataView view2 = new DataView( myTable ); // Creates Ascending view of Customers by Name view1.Sort = Name ASC; // Set the view to show only modified (original) rows view2.RowFilter = "City = Casablanca"; // Bind to UI element(s)... DataGridView myGrid = new DataGridView(); myGrid.DataSource = view1; myGrid.DataSource = view2;

Similaire a DataView mais orient DataSet Utiliser pour crer des vues multiples dans un DataSet
Possibilit de rgler automatiquement les filtres sur les tables

Proprits :
DataViewSettings: collection de DataView pour chaque DataTable DataSet: Gets or Sets le DataSet visualis

CreateDataView mthode Cre le DataView sur un DataTable.

// Create the DataViewManager & views... DataViewManager dvMgr = new DataViewManager( ds); dvMgr.CreateDataView( ds.Tables["Orders"] ); dvMgr.DataViewSettings["Orders"].Sort = "CustID ASC"; dvMgr.CreateDataView( ds.Tables["Customers"] ); dvMgr.DataViewSettings["Customers"].Sort = "Name DESC"; // Bind to a UI elements/controls... dataGrid1.DataSource = dvMgr; dataGrid1.DataMember = "Table1"; dataGrid2.DataSource = dvMgr; dataGrid2.DataMember = "Table2"; // Update the control with the data... dataGrid1.Update(); dataGrid2.Update();

DataSet peut Lire/Ecrire du XML et/ou des schmas


Cration & modification des donnes dans un DataSet avec XML Cration & modification du DataSets Schma avec XML

XML-related DataSet : mthodes de lecture:


ReadXml: lecture du XML Data & Schma dans un DataSet ReadXmlSchema: lecture dun XML schma dans DataSet

Mthode dcriture:
WriteXml, WriteXmlSchema GetXml, GetXmlSchema

// Code for creating the DataSet mds and loading the // DataSet from a data source not shown. String oFile = "C:\\ADO.NET\\myXmlOutput.xsd"; String iFile = "C:\\ADO.NET\\myXmlInput.xsd"; // Write the DataSets XMLSchema to an XML Document mds.WriteXmlSchema( oFile ); // Read/Upload XML Data into the DataSet mds.ReadXml( iFile);

// modify the data // ...


// Write the existing Data to an XML Document mds.WriteXml("C:\\ADO.NET\\myXmlData.txt", XmlWriteMode.DiffGram);

ADO.NET est lvolution de lADO Mode dconnect, Web-centric model Flexibilit de manipulation des donnes Incrmente lagilit dorganisation des donnes Support de lXML
Facilit de travailler et partager des donnes

Interagit avec une large varits de data sources.

Vous aimerez peut-être aussi