La réutilisation en .net DataSets
-
22-09-2019 - |
Question
Est-ce une bonne idée de réutiliser un ensemble de données en .net? Ce que je veux dire est ... J'ai le code suivant qui boucle un gridview
For Each row in GridView
ds = New DataSet
ds.ReadXML(GetStream(row.Field))
... export the dataset
Next
Ce que je fais dans la boucle est la création d'une nouvelle instance de la DataSet. Je ne peux pas simplement appeler ds.Clear (), puis le réutiliser par la ds.ReadXML ()?
La solution
La sémantique est différente: DataSet.Clear
supprime toutes les données (lignes), mais conserve le schéma (tables et relations).
Dans votre exemple, il semble que les tables sont créées à partir de la méthode ReadXml (qui peut lire le schéma ainsi que des données).
DataSet.Clear
serait probablement travailler aussi longtemps que vous êtes certain que tous les documents Xml ont le même schéma, mais en utilisant New
est plus robuste et mieux EXPRIME votre intention.
Toutefois, si vous lisiez des données uniquement, comme dans l'exemple suivant, DataSet.Clear
pourrait être un meilleur choix car il vous évite de générer à plusieurs reprises le schéma.
ds = New DataSet
... code to create the schema (Tables, Columns, Relations)
For Each row in GridView
ds.ReadXML(GetStream(row.Field), XmlReadMode.IgnoreSchema)
... export the dataset
ds.Clear
Next
Autres conseils
Vous pesez réutiliser avec d'autres considérations de performance. D'une manière générale, je ne le fais pas comme ça Optimisations jusqu'à ce qu'ils deviennent nécessaires. Et seulement si je nombre pour prouver que cela est nécessaire.
Vous pourriez être en mesure de le faire, mais la création d'objets est si bon marché et vous avez pas de risque d'effets secondaires, il n'y a aucune raison de ne pas créer le nouvel objet.