Choisir entre DataTable et DataReader dans ADO.NET

Le choix entre DataTable et DataReader a été un point de débat depuis l'évolution d'ADO.NET.

Voici quelques directives simples qui peuvent vous aider à choisir celui de votre application.

 

Choisissez DataTable:

  • Pour réutiliser le même ensemble de lignes à travers différents appels de fonction dans l'application.
  • Pour obtenir un gain de performance en les mettant en mémoire cache pour différentes opérations comme le tri, la recherche ou le filtrage des données.
  • Pour effectuer une grande quantité de traitement par ligne.
  • Pour échanger des données entre différents niveaux d'application (comme l'utilisation d'un service Web XML)
  • Manipuler des données à l'aide d'opérations XML telles que les transformations de langage de feuille de style extensibles (transformations XSLT) ou les requêtes XPath.

Choisissez DataReader:

Lorsque vous n'avez pas besoin de mettre en cache les données (vous n'avez pas besoin d'opérations comme le tri, le filtrage côté client etc ...)

  • Lorsque vous avez besoin d'accéder rapidement aux données une fois, d'une seule manière, en lecture seule et en lecture seule.

Dernier mais pas des moindres:

Le DataAdapter utilise le DataReader pendant le remplissage d'un DataTable. Par conséquent, vous obtenez un gain de performances en utilisant DataReader au lieu de DataTable (DataAdapter).

      Dans le cas de DataTable, car toutes les données sont hors ligne, donc il faut plus de mémoire que d'utiliser DataReader
      Nombre de cycles que le DataAdapter prend pour remplir la table de données.