Datatable vs Dataset

voix
104

J'utilise actuellement un DataTable pour obtenir des résultats à partir d'une base de données que je peux utiliser dans mon code.

Cependant, de nombreux exemples dans l'émission Web en utilisant plutôt un DataSet et accéder à la table (s) par la méthode de recouvrement.

Est-il sage ou autrement un avantage, la performance, l'utilisation ou DataSets DataTables comme méthode de stockage des résultats SQL?

Créé 05/08/2008 à 14:07
source utilisateur
Dans d'autres langues...                            


6 réponses

voix
82

Cela dépend vraiment du type de données que vous ramenons. Depuis un DataSet est (en effet), juste une collection d'objets DataTable, vous pouvez retourner plusieurs ensembles distincts de données en une seule, et donc plus facile à gérer, objet.

Côté performance, vous avez plus de chances d'obtenir l'inefficacité des requêtes non optimisées que du « mauvais » choix de construction .NET. Au moins, ça a été mon expérience.

Créé 05/08/2008 à 14:12
source utilisateur

voix
19

Une différence majeure est que DataSets peut contenir plusieurs tables et vous pouvez définir les relations entre les tables.

Si vous ne retournerez un seul jeu de résultats si je pense qu'un DataTable serait plus optimisé. Je pense qu'il doit y avoir certains frais généraux (accordé petite) pour offrir la fonctionnalité d'un DataSet fait et garder une trace de plusieurs DataTables.

Créé 14/09/2008 à 04:07
source utilisateur

voix
6

1.x il y avait des choses DataTables ne pouvaient faire qui pourraient DataSets (ne me souviens pas exactement quoi). Tout ce qui a été changé en 2.x. Je pense que est pourquoi beaucoup d'exemples utilisent encore des jeux de données. DataTables devrait être plus rapide car ils sont plus légers. Si vous ne tirant un seul ResultSet, son meilleur choix entre les deux.

Créé 05/08/2008 à 14:10
source utilisateur

voix
5

Une caractéristique du DataSet est que si vous pouvez appeler plusieurs instructions de sélection dans vos procédures stockées, le DataSet aura un DataTable pour chacun.

Créé 05/08/2008 à 14:15
source utilisateur

voix
3

Il y a quelques optimisations que vous pouvez utiliser lors du remplissage d' un DataTable, comme appeler BeginLoadData (), insérer les données, puis en appelant EndLoadData (). Cela désactive un comportement interne au sein du DataTable, comme la maintenance des index, etc. Voir cet article pour plus de détails.

Créé 14/09/2008 à 03:55
source utilisateur

voix
0

Lorsque vous ne traitez avec une seule table de toute façon, la plus grande différence pratique que j'ai trouvé est que DataSet a une méthode « HasChanges » mais DataTable ne fonctionne pas. Tous les deux ont un « GetChanges » Cependant, afin que vous puissiez l'utiliser et tester null.

Créé 05/12/2016 à 15:50
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more