Maison >développement back-end >C++ >Comment charger efficacement les fichiers CSV dans un .NET DataTable à l'aide du fournisseur OLEDB?

Comment charger efficacement les fichiers CSV dans un .NET DataTable à l'aide du fournisseur OLEDB?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-27 19:11:09621parcourir

How to Efficiently Load CSV Files into a .NET DataTable Using the OleDb Provider?

Importation de données CSV dans un .NET DataTable à l'aide du fournisseur OLEDB

Ce guide montre comment charger efficacement les fichiers CSV dans un .NET System.Data.DataTable en utilisant le fournisseur OLEDB. Bien que simple, cette approche nécessite une attention aux détails, en particulier lors de la gestion des données numériques.

Tiration du fournisseur OLEDB

Le fournisseur OLEDB offre un mécanisme simple pour interagir avec les fichiers CSV. Cependant, un piège commun implique l'interprétation erronée des valeurs numériques en tant que texte. Pour atténuer cela, nous utiliserons un fichier schema.ini.

L'importance du schéma.ini

Le fichier schema.ini fournit une configuration cruciale pour le fournisseur OLEDB, permettant un contrôle à grain fin sur le processus d'importation de données. Plus précisément, il nous permet de définir explicitement les types de données, garantissant une interprétation correcte des champs numériques.

Implémentation pratique: une méthode C #

Le code C # suivant fournit une méthode réutilisable pour charger les données CSV dans A DataTable:

<code class="language-csharp">using System.Data;
using System.Data.OleDb;
using System.Globalization;
using System.IO;

public static DataTable LoadCsvToDataTable(string filePath, bool hasHeaderRow)
{
    string header = hasHeaderRow ? "Yes" : "No";
    string pathOnly = Path.GetDirectoryName(filePath);
    string fileName = Path.GetFileName(filePath);
    string connectionString = $@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={pathOnly};Extended Properties=""Text;HDR={header}""";
    string sql = $@"SELECT * FROM [{fileName}]";

    using (OleDbConnection connection = new OleDbConnection(connectionString))
    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>

Paramètres et fonctionnalités de la méthode:

  • filePath: le chemin complet de votre fichier CSV.
  • hasHeaderRow: Un booléen indiquant si la première ligne contient des en-têtes de colonne (true) ou non (false).

La méthode construit une chaîne de connexion, exécute une requête SQL pour sélectionner toutes les données et remplit A DataTable avec les résultats. La propriété Locale garantit une interprétation correcte des données en fonction des paramètres régionaux de votre système.

Cette approche rationalisée fournit une solution robuste et efficace pour intégrer les données CSV dans vos applications .NET. N'oubliez pas de gérer les exceptions potentielles (par exemple, FileNotFoundException) pour une stratégie complète de gestion des erreurs.

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