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!