Die Wiederverwendung von Datasets in .net
-
22-09-2019 - |
Frage
Ist es eine gute Idee, um die Weiterverwendung einen Datensatz in .net? Was ich meine ist ... Ich habe den folgenden Code, die Schleifen ein gridview
For Each row in GridView
ds = New DataSet
ds.ReadXML(GetStream(row.Field))
... export the dataset
Next
Was ich in der Schleife mache eine neue Instanz des DataSet zu schaffen. Kann ich nicht einfach anrufen ds.Clear () und es dann über die ds.ReadXML Wiederverwendung ()?
Lösung
Die Semantik sind unterschiedlich: DataSet.Clear
löscht alle Daten (Zeilen), behält aber das Schema (Tabellen und Beziehungen).
In Ihrer Probe, es sieht aus wie die Tabellen aus der ReadXml Methode erstellt werden (das Schema sowie Daten lesen kann).
DataSet.Clear
würde wahrscheinlich arbeiten, solange Sie sicher sind, alle XML-Dokumente das gleiche Schema, aber mit New
ist robuster und drückt Ihre Absicht besser.
Wenn Sie jedoch Daten wurden nur zu lesen, wie im folgenden Beispiel, DataSet.Clear
könnte eine bessere Wahl sein, da es vermeidet man wiederholt das Schema zu erzeugen.
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
Andere Tipps
Sie wiegen Wiederverwendung mit anderen Leistungsinformationen. Im Allgemeinen ich nicht Optimierungen wie diese, bis sie notwendig werden. Und nur dann, wenn ich Zahlen beweisen müssen, dass sie gebraucht wird.
Sie könnten in der Lage sein, das zu tun, aber die Objekterstellung ist so billig, und Sie haben kein Risiko von Nebenwirkungen, gibt es keinen Grund, nicht das neue Objekt zu erstellen.