Professional Documents
Culture Documents
---
ADO .Net
RM di scala
Rm di Scala - http://www.discala.net
SOMMAIRE
Plan général:
DataSet
DataTable
DataColumn
DataRow
DataRelation
ADO .NET est un regroupement de types (classes, interfaces, …) dans l'espace de nom
System.Data construits par Microsoft afin de manipuler des données structurées dans le .NET
Framework.
Le modèle ADO .NET du .NET Framework fournit au développeur un ensemble d'éléments lui
permettant de travailler sur des données aussi bien en mode connecté qu'en mode déconnecté (ce
dernier mode est le mode préférentiel d' ADO .NET car c'est celui qui est le plus adapté aux
architectures multi-tiers). ADO .NET est indépendant du mode de stockage des données : les
classes s'adaptent automatiquement à l'organisation
ADO .NET permet de traiter des données situées dans des bases de données selon le modèle
relationnel mais il supporte aussi les données organisées selon le modèle hiérarchique.
L'entité la plus importante d' ADO .NET permettant de gérer les données en local dans une
mémoire cache complétement déconnectée de la source de données (donc indépendante de cette
source) est le DataSet en fait la classe System.Data.DataSet et la collection de classes qui lui sont
liées.
Les classes mises en jeu lors d'une telle opération sur les données sont les suivantes :
System.Data.DataSet
System.Data.DataTable System.Data.DataTableCollection
System.Data.DataColumn System.Data.DataColumnCollection
System.Data.DataRow System.Data.DataRowCollection
System.Data.DataRelation System.Data.DataRelationCollection
System.Data.DataConstraint System.Data.ConstraintCollection
System.Data.DataView
Un DataSet est en fait une collection de tables représentée par un objet de collection de la classe
DataTableCollection et une collection de relations entres ces tables tables représentée par un
objet de collection de la classe DataRelationCollection.
rm di Scala - 2006
Le schéma général de la table d'un objet DataTable est donné par la famille des colonnes (l'objet
Columns) chaque objet DataColumn de la collection représente une colonne de la table :
Une DataRelationCollection est une collection d'une ou plusieurs DataRelation qui représentent
chacunes une relation entre deux DataTable dans le DataSet.
rm di Scala - 2006
Voici une représentation fictive mais figurative d'un DataSet contenant 4 DataTable et 2
Livret 13 : ADO .Net et données relationnelles - ( rév. 07.12.2005 ) page
5
DataRelation :
La DataTableCollection du DataSet :
La DataRelationCollection du DataSet :
q Ajouter, supprimer ou modifier des données ligne par ligne dans chaque table.
unDataSet.Tables.Add(tabClients);
unDataSet.Tables.Add(tabAchats);
La validation de toutes les modifications apportées au DataSet depuis son chargement s'effectue
grâce à la méthode AcceptChanges(), on termine donc le code par la ligne :
unDataSet.AcceptChanges();
Le DataSet ainsi construit peut maintenant travailler en lecture et en éciture sur une structure de
données construite sous forme de deux tables Clients et Achats reliées entre elles comme figuré ci-
desssous :
Voici affiché dans un autre composant visuel DataGrid, la table des Achats avec ses quatre
colonnes remplies par le programme précédent :
Le composant DataGrid destiné à afficher une table de données, est remplacé dans la version
2.0 par le DataGridView, mais est tojours présent et utilisable.
Voici deux façons de lier ce composant visuel à la première table (la table Clients) du DataSet du
programme de gestion du Magasin :
Enfin pour terminer la description des actions pratiques d'un DataSet, indiquons qu'il est possible
de sauvegarder le schéma structuré (relation, clef primaire, tables,…) d'un DataSet dans un fichier
de schémas au format XSL; il est aussi possible de sauvegarder toutes les données et leur
structuration dans un fichier au format XML.
msdata:IsNested="true">
Livret 13 : ADO .Net et données relationnelles - ( rév. 07.12.2005 ) page
11
<xs:selector xpath=".//Achats" />
<xs:field xpath="ClientID" />
</xs:keyref>
</xs:element>
</xs:schema>