Quoi de mieux: DataSet ou DataReader?

Je viens de voir ce sujet: Datatable vs Dataset mais cela n’a pas résolu mon doute. Permettez-moi de mieux expliquer, je faisais la connexion avec la firebase database et je devais montrer les résultats dans un GridView. (J’ai utilisé RecordSet quand je travaillais avec VB6 alors que DataSet était assez similaire, donc il était beaucoup plus facile d’utiliser DataSet.) Puis un gars m’a dit que DataSet n’était pas la meilleure méthode pour le faire.

Alors, devrais-je “apprendre” DataReader ou continuer à utiliser DataSet? DataTable? Quels sont les avantages / inconvénients?

Cela dépend de vos besoins. L’une des différences les plus importantes est qu’un DataReader conservera une connexion ouverte à votre firebase database jusqu’à ce que vous en ayez fini avec un DataSet qui sera un object en mémoire. Si vous liez un contrôle à un DataReader, il est toujours ouvert. De plus, DataReader est une approche avant-gardiste pour la lecture des données qui ne peuvent pas être manipulées. Avec un DataSet, vous pouvez aller et venir et manipuler les données comme bon vous semble.

Quelques fonctionnalités supplémentaires: Les DataSets peuvent être sérialisés et représentés en XML et, par conséquent, facilement transmis aux autres niveaux. DataReaders ne peut pas être sérialisé.

Par contre, si vous avez un grand nombre de lignes à lire dans la firebase database que vous transférez à un processus pour une règle métier, un DataReader peut être plus utile que de charger un dataset avec toutes les lignes, l’évolutivité

Voici un lien un peu daté mais toujours utile: Contraster le DataReader et le DataSet ADO.NET .

C’est essentiellement: “qui est le meilleur: un seau ou un tuyau?”

Un DataSet est le compartiment ici; il vous permet de transporter un dataset déconnecté et de travailler avec lui – mais vous devrez payer le coût du transport du seau (si bien que vous gardez la taille qui vous convient le mieux).

Un lecteur de données est le tuyau: il fournit un access unidirectionnel / unique aux données au fur et à mesure qu’il passe devant vous; vous n’avez pas à transporter toute l’eau disponible en une fois, mais vous devez la connecter au robinet / à la firebase database.

Et de la même manière que vous pouvez remplir un seau avec un tuyau, vous pouvez remplir le DataSet avec le lecteur de données.

Ce que j’essaie de dire, c’est qu’ils font des choses différentes …

Je n’utilise pas souvent DataSet très souvent – mais certaines personnes les aiment. Je fais cependant usage de lecteurs de données pour l’access BLOB, etc.

Suite à la remarque de Marc : vous pouvez utiliser un DataSet sans aucune firebase database.

Vous pouvez le remplir depuis un fichier XML, ou simplement depuis un programme. Remplissez-le avec des lignes d’une firebase database, puis retournez-le et écrivez-le dans une autre firebase database.

Un DataSet est une représentation totalement en mémoire d’un schéma relationnel. Que vous l’utilisiez ou non avec une firebase database relationnelle réelle est à vous.

Différents besoins, différentes solutions.

Comme vous l’avez dit, l’dataset est le plus similaire à VB6 Recordset. Autrement dit, déroulez les données dont vous avez besoin, transmettez-les, faites-en ce que vous voulez. Oh, et finalement finir par s’en débarrasser quand tu auras fini.

Datareader est plus limité, mais il donne BEAUCOUP de meilleures performances lorsque tout ce dont vous avez besoin est de lire les données une fois. Par exemple, si vous remplissez vous-même une grid, c’est-à-dire tirez les données, parcourez-la, pour chaque ligne remplissez la grid, puis jetez les données. Le lecteur de données est bien meilleur que l’dataset. D’un autre côté, n’essayez même pas d’utiliser un datareader si vous avez l’intention de mettre à jour les données …

Alors, oui, apprenez-le – mais ne l’utilisez que lorsque c’est approprié. Le jeu de données vous offre beaucoup plus de flexibilité.

Pour répondre à votre deuxième question – Oui, vous devriez en apprendre davantage sur DataReaders. Si quelque chose, alors vous comprenez comment les utiliser.

Je pense que vous êtes mieux dans cette situation en utilisant DataSets – puisque vous effectuez la liaison de données et tout (je pense aux cycles du processeur par rapport aux efforts humains).

Sur lequel on donnera une meilleure performance. Cela dépend beaucoup de votre situation. Par exemple, si vous modifiez les données que vous associez et que vous les regroupez, vous serez plus à l’aise avec les DataSets.