Heim >Backend-Entwicklung >C++ >Wie laden Sie CSV -Daten effizient in ein .NET -DataTable?
Laden Sie CSV-Daten effizient in .NET DataTable
Das Laden von CSV-Daten in DataTable ist eine häufige Aufgabe bei der Datenverarbeitung und -analyse. In diesem Artikel wird untersucht, wie Sie dies mithilfe der integrierten Funktionen von .NET erreichen können, wobei der Schwerpunkt auf der Erstellung eines Schemas aus einer CSV-Datei liegt.
Standardfunktionen von ADO.NET verwenden
Das Standard-ADO.NET-Framework unterstützt das Lesen von CSV-Dateien nicht direkt. Wir können jedoch den OleDb-Anbieter nutzen, um CSV-Daten zu importieren, indem wir eine Schemadefinitionsdatei erstellen.
Schema mithilfe der .INI-Datei erstellen
Um eine Schemadatei (schema.ini) zu erstellen, befolgen Sie diese Schritte:
<code>[FileName.csv] Format=CSVDelimited ColNameHeader=True MaxScanRows=0</code>
Code-Implementierung
Der folgende Code zeigt, wie CSV-Daten mithilfe des OleDb-Anbieters mit einer Schemadefinitionsdatei in eine DataTable geladen werden:
<code class="language-csharp">using System.Data; using System.Data.OleDb; using System.Globalization; using System.IO; static DataTable GetDataTableFromCsv(string path, bool isFirstRowHeader) { string header = isFirstRowHeader ? "Yes" : "No"; string pathOnly = Path.GetDirectoryName(path); string fileName = Path.GetFileName(path); string sql = @"SELECT * FROM [" + fileName + "]"; using (OleDbConnection connection = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly + ";Extended Properties=\"Text;HDR=" + header + "\"")) using (OleDbCommand command = new OleDbCommand(sql, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; adapter.Fill(dataTable); return dataTable; } }</code>
Diese Methode verwendet als Eingabe einen CSV-Dateipfad und ein Flag, das angibt, ob die erste Zeile Spaltenüberschriften enthält. Es gibt eine gefüllte Datentabelle basierend auf CSV-Daten zurück.
Diese Methode akzeptiert den CSV-Dateipfad und einen booleschen Wert als Parameter, der angibt, ob die erste Zeile die Kopfzeile ist. Es gibt eine mit CSV-Daten gefüllte DataTable zurück. Der verbesserte Code fügt using System.Globalization;
- und using System.IO;
-Namespaceverweise hinzu und demonstriert die Funktionalität des Codes deutlicher.
Das obige ist der detaillierte Inhalt vonWie laden Sie CSV -Daten effizient in ein .NET -DataTable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!