Heim >Backend-Entwicklung >C++ >Wie kann ich CSV-Daten effizient in eine .NET-Datentabelle laden?
Importieren von CSV -Daten in eine .NET -Datentabelle: Ein praktisches Handbuch
effizientes Umgang mit CSV -Daten ist für viele .NET -Anwendungen von entscheidender Bedeutung. Dieser Artikel zeigt, wie CSV -Dateien nahtlos in ein .NET DataTable importiert werden können, eine leistungsstarke ADO.NET -Struktur zum Verwalten von Tabellendaten.
Nutzung des OLEDB -Anbieters
Während Standard ado.net keine direkte CSV -Importfunktionalität hat, bietet der OLEDB -Anbieter eine robuste Lösung. Eine häufige Herausforderung beinhaltet jedoch die korrekte Interpretation numerischer Daten. Wir werden dies mithilfe einer schema.ini
Datei ansprechen (unten erläutert).
Eine wiederverwendbare C# -Methode
Die folgende C# -Funktion liest eine CSV
<code class="language-csharp">public static DataTable LoadCsvToDataTable(string filePath, bool hasHeaderRow) { string directory = Path.GetDirectoryName(filePath); string filename = Path.GetFileName(filePath); string header = hasHeaderRow ? "Yes" : "No"; string sqlQuery = $"SELECT * FROM [{filename}]"; using (OleDbConnection connection = new OleDbConnection( $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={directory};Extended Properties=\"Text;HDR={header}\"")) using (OleDbCommand command = new OleDbCommand(sqlQuery, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; // Ensures correct data type handling adapter.Fill(dataTable); return dataTable; } }</code>Diese Methode verwendet die aktuelle Kultur, um eine genaue Interpretation der Datentyp zu gewährleisten, wodurch gemeinsame Probleme mit numerischen Werten verhindert werden. Dieser Ansatz vermeidet die Notwendigkeit des manuellen Typs.
Das obige ist der detaillierte Inhalt vonWie kann ich CSV-Daten effizient in eine .NET-Datentabelle laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!