2009-09-22 6 views
0

Pour l'essentiel, l'application sur laquelle je travaille traite de l'objet, et je peux lier une liste d'objets à un gridview sans aucun problème.asp.net 2.0: meilleure structure de données à lier à gridview

Toutefois, dans quelques cas, je souhaite afficher les résultats d'une jointure multi-table dans une grille. Le code actuel utilise un ensemble de données, ce qui est assez facile, mais je me demande s'il existe une meilleure façon de le faire.

Nous n'avons pas besoin de la plupart des fonctionnalités de l'ensemble de données - les données sont en lecture seule, et il n'y aura pas un grand nombre d'enregistrements dans la plupart des cas. (c'est-à-dire probablement pas plus de 200, et habituellement 10-20)

Répondre

0

Je pense que vous devriez utiliser le DataReader chaque fois que cela est possible. Il y a des moments où un DataSet est plus approprié, comme les deux situations listées ci-dessous. Ceux-ci sont venus de l'article "Why I Don't Use DataSets in My ASP.NET Applications". Consultez également l'article de suivi, "More On Why I Don't Use DataSets in My ASP.NET Applications".

  1. Dans un bureau, une application WinForms. Considérons un programme de type entrée de données basé sur le bureau. Un utilisateur peut allumer le programme, charger les données de ventes à partir de certains serveurs de base de données, faire certains changements, puis voulez enregistrer ces changements. C'est une situation idéale pour le DataSet. Il permet les données à lire dans un DataSet résidant dans la mémoire du client, ce qui permet à l'utilisateur la possibilité de travailler sur les données sans avoir besoin de constamment faire des voyages de retour à la base de données . Une fois l'édition des données terminée, ils peuvent effectuer une mise à jour par lots, en gérant avec élégance les modifications qui peuvent avoir eu lieu alors que l'utilisateur était travaillant avec les données dans un état déconnecté . En outre, puisque le DataSet est un magasin de données déconnecté , ces données peuvent être mises hors ligne. Un vendeur se rendant sur le site d'un client peut charger ces données et être en mesure de d'examiner les données sur son ordinateur portable pendant qu'il est en transit, ou lorsqu'il est au bureau du client.

  2. Pour envoyer/recevoir des informations de base de données distantes ou pour autoriser la communication entre des plates-formes disparates. Depuis un DataSet peut être sérialisé/désérialisé en XML afin facilement, ils sont un candidat de choix pour l'envoi d'informations à travers les frontières physiques ou comme moyen de données sérialisation dans un format plate-forme neutre . Par exemple, si vous souhaitez renvoyer des données de base de données à partir d'un service Web, une option est simplement lire les données de base de données dans un DataSet et puis renvoyer le DataSet à partir de la méthode de service Web. Le DataSet sera automatiquement sérialisé en XML et envoyé sur le fil . (Personnellement, je ne recommande pas renvoyer des données à partir d'un service Web en de cette manière.Plutôt, je préfère utiliser objets métier personnalisés - il permet un plus fin degré de contrôle sur la sérialisation XML , fournit une charge utile de retour beaucoup plus léger , et apparaît moins spécifique à l'architecture .