Ich habe eine aufgefüllte DataTable, die ich für eine spätere Verwendung in eine Datei serialisieren möchte. Ich habe mir die Möglichkeiten angeschaut und mich gefragt, ob mir jemand in die richtige Richtung zeigen könnte.
Was ich erstellen werde, sind zwei Methoden - eine zum Schreiben der Datentabelle in eine Datei und eine weitere zum Erstellen einer neuen Datentabelle unter Verwendung der Datei als Eingabe. Macht es Sinn, hierfür die WriteXML () - und Load () -Methoden zu verwenden, und wenn ja, auf welche Flags soll man sich konzentrieren? Danke für die Anleitung.
Ich verwende .NET 2.0, wenn das hilft.
Ich denke, Silveira Kommentar bedeutet die Verwendung der binären Serialisierung . Und es ist richtig, dass es sehr schnell mit XML verglichen werden kann, die Serialisierung ist sehr langsam im Vergleich zu Binärdateien speziell für große Datenmengen. Außerdem benötigt es viel weniger Platz auf der Festplatte als XML.
%Vor% WICHTIGER HINWEIS:
Wenn Sie versuchen, ein DataTable
-Objekt oder ein DataSet
-Objekt mit dem Binärformatierer zu serialisieren, erhalten Sie immer noch eine Binärdatei, aber sie ist ziemlich groß, weil sie mit einer Tonne XML-Daten gefüllt ist. Unglücklicherweise machen XML-Daten in Binärdateien riesige Dateien aus, denen die Vorteile der Portabilität und Lesbarkeit von XML fehlen. Anschließend kann das Deserialisieren solcher Dateien einige Sekunden dauern und viel mehr Speicherplatz belegen, als wirklich benötigt wird. Wenn Sie eine binäre Serialisierung von ADO.NET-Objekten wählen, weil Sie eine kompaktere Ausgabe benötigen, wird fehlschlagen . Die binäre Serialisierung ist immer noch der platzsparendste Ansatz, aber mit ADO.NET-Objekten erweist es sich nicht als so effektiv, wie es sollte.
Für vollständige Referenz lesen Sie den folgenden Artikel: - Ссылка
Sie können die grundlegende Technik der Serialisierung Ihrer Datenbank in CSV-Dateien mit Kopfzeilen verwenden. Einige Datenbankverwaltungssysteme unterstützen das einfache Laden von Daten aus solchen Dateien. Und für den Fall, dass Ihr dbms es nicht tut, wäre es nicht zu schwierig, Code zu schreiben, der das für Sie erledigt. Beantwortet das deine Frage?
Nach meiner Meinung besteht der Nachteil von xml darin, dass es möglicherweise mehr Meta-Daten als tatsächliche Daten enthält. Im Falle von CSV-Dateien werden Metadaten nicht wiederholt.
Ist die Datentabelle ein Objekt im Speicher? Wenn ja, könnten Sie einfach mit Serialize und Deserialize Methoden gehen. Sie sind relativ schnell und Sie können das Ergebnis überall wo Sie wollen.
Tags und Links .net c# datatable xml-serialization