Heim > Backend-Entwicklung > C++ > Wie laden Sie CSV -Daten effizient in ein .NET -DataTable?

Wie laden Sie CSV -Daten effizient in ein .NET -DataTable?

Barbara Streisand
Freigeben: 2025-01-27 19:31:08
Original
965 Leute haben es durchsucht

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.

How to Efficiently Load CSV Data into a .NET DataTable?

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:

  1. Fügen Sie den folgenden Code in eine Datei namens schema.ini ein:
<code>[FileName.csv]
Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0</code>
Nach dem Login kopieren
  1. Speichern Sie die Datei im selben Verzeichnis wie die CSV-Datei.

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>
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage