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 ()?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top