Page d'accueil Page d'accueil Page d'accueil
   Offre   Société   Produit  Expertise Actualités Recrutement Contactez-nous Plan du site

Expertise

Articles techniques
Testez nos experts
    SGBD
    Technologies
    Intégration Continue
 

Accueil > Expertise > Tester nos experts > Technologies > DataSet, DataReader, DataGrid

Technologies : ASP.Net

Quels sont les liens et différences entre un DataSet, un DataReader et un DataGrid ?

En premier lieu, il est important de savoir que DataSet et DataReader sont sensiblement les mêmes objets métiers agissant sur les données alors qu'un DataGrid est une interface utilisateur représentant un tableau de données.

Quelles sont les véritables différences entre ces objets ?

Le DataSet

Il s'agit d'un modèle d'objet qui offre une vue "générale" des données sans aucune attache avec la source de données réelle. Le DataSet est un cache de données, il ne connaît rien de la base de données existante (non connaissance de la source, du format). Il s'agit d'une copie plate de la base de données. Notons que le DataSet interprète correctement les fichiers au format XML et manipule les données qu'il contient comme des enregistrements d'une table. Il peut contenir des données relationnelles ou non relationnelles.

La particularité d'un DataSet est qu'il permet de travailler en mode déconnecté sur une base de données. Cette dernière peut être mise à jour périodiquement par programmation.

Le DataSet est rempli grâce à l'objet DataAdapter. Le DataAdapter établit la connexion entre le DataSet et la base de données et rend possible les mises à jour .

L'objet DataView permet de réaliser une extraction du flux contenu dans un DataSet. Ainsi, toutes les données sont chargées dans le DataSet une seule fois, puis des requêtes (assimilables à des filtres) peuvent être effectuées sans se reconnecter systématiquement à la base de données.

Lien entre le DataSet et la base de données

Le DataReader

Similaire au DataSet, le DataReader se différencie essentiellement par son accès direct et connecté aux données. Le DataReader est plus performant que le DataSet dans des cas comme la simple consultation des données. Le DataReader n'est qu'un pointeur sur les données en lecture seule. Cela permet d'alléger l'accès au serveur.
Côté développement, le code programmé pour accèder aux données s'effectue de la même façon qu'avec un DataSet, seules les méthodes appelées changent.
En ce qui concerne son utilisation, le DataReader s'utilise comme un DataSet.
Le DataView n'est pas utilisable dans ce cas.

Le DataGrid

Le DataGrid est utilisé pour présenter de l'information. Il se présente sous la forme d'une table. (Notons que deux objets similaires existent : le Repeater et le DataList.)
Le DataGrid permet de présenter les données très facilement et soigneusement. Il permet également de mettre à jour les données.

Voici quelques attributs principaux du DataGrid :

  • Les attributs "traditionnels" d'un tableau : width, backcolor, cellSpacing, Font, …., mais aussi alternance des couleurs des lignes (alternatingitemstyle-backcolor…)
  • EditCommandColumn : colonne dans laquelle est insérée trois boutons : edit, update, cancel. Ces trois commandes nécessitent l'appel de fonctions (à programmer). Globalement, le bouton Edit permet de pouvoir modifier les données contenues dans la ligne sélectionnée. Le bouton Update permet de valider les modifications et Cancel permet d'annuler la modification. L'utilisation de ces fonctionnalités optimise la mise à jour des données.
  • AllowPaging : permet la gestion de l'affichage des données sur plusieurs pages. Le nombre de lignes de données est à paramétrer (pagesize), ainsi que le style des boutons de navigation (Pager-Style mode). Il est très coûteux de charger des bases de données volumineuses pour chaque page. Il vaut mieux récupérer les données dans de gros morceaux de page, plutôt que de toutes les stocker et les consulter page par page ensuite. Le DataGrid supporte des tailles importantes de données, grâce aux propriétés AllowCustompaging et VirtualItemCount.
  • AllowSorting : permet de trier la table par type de colonne.
  • Les colonnes sont facilement personnalisables grâce aux attributs BoundColumn et TemplateColumn.


Retour en haut de la page Haut de page