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
Libérer: 2025-01-27 19:31:08
original
936 Les gens l'ont consulté

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>
Copier après la connexion
    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>
Copier après la connexion
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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal