Maison >développement back-end >C++ >Comment charger efficacement des données CSV dans un DataTable .NET ?

Comment charger efficacement des données CSV dans un DataTable .NET ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-27 19:31:081003parcourir

Charge efficacement les données CSV à .NET DataTable

Chargement des données CSV à DataTable est une tâche courante dans le traitement et l'analyse des données. Cet article explique comment utiliser la fonction construite.

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

Utiliser la fonction ADO.NET standard

Framework ADO.NET standard ne prend pas directement en charge la lecture des fichiers CSV. Cependant, nous pouvons utiliser le fournisseur oledb

pour introduire des données CSV en créant des fichiers de définition d'architecture.

<.> Utilisez le fichier .ini pour créer une architecture

Pour créer un fichier d'architecture (schema.ini), suivez les étapes suivantes:

Mettez le code suivant dans un fichier nommé schema.ini:

  1. Enregistrez le fichier dans le même répertoire que le fichier CSV.
<code>[FileName.csv]
Format=CSVDelimited
ColNameHeader=True
MaxScanRows=0</code>
    implémentation du code
Le code suivant montre comment utiliser le fournisseur OLEDB avec un fichier de définition architecturale pour charger les données CSV à DataTable:

Cette méthode utilise le chemin du fichier CSV et un logo en entrée. Il renvoie une données remplie basée sur les données CSV.

Cette méthode accepte le chemin de fichier CSV et une valeur booléenne en tant que paramètre, indiquant si la première ligne est l'en-tête. Il renvoie une données qui remplit les données CSV. Le code amélioré a augmenté la référence de l'espace de dénomination

et
<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>
et a affiché plus clairement la fonction du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn