Importer des données CSV dans un DataTable .NET : un guide pratique
La gestion efficace des données CSV est cruciale pour de nombreuses applications .NET. Cet article montre comment importer de manière transparente des fichiers CSV dans un DataTable .NET, une puissante structure ADO.NET pour gérer les données tabulaires.
Tirer parti du fournisseur OleDb
Bien qu'ADO.NET standard ne dispose pas de fonctionnalité d'importation CSV directe, le fournisseur OleDb fournit une solution robuste. Toutefois, un défi courant concerne l’interprétation correcte des données numériques. Nous allons résoudre ce problème à l'aide d'un fichier schema.ini
(expliqué ci-dessous).
Une méthode C# réutilisable
La fonction C# suivante lit un fichier CSV et remplit un DataTable, en gérant les lignes d'en-tête de manière appropriée :
<code class="language-csharp">public static DataTable LoadCsvToDataTable(string filePath, bool hasHeaderRow) { string directory = Path.GetDirectoryName(filePath); string filename = Path.GetFileName(filePath); string header = hasHeaderRow ? "Yes" : "No"; string sqlQuery = $"SELECT * FROM [{filename}]"; using (OleDbConnection connection = new OleDbConnection( $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={directory};Extended Properties=\"Text;HDR={header}\"")) using (OleDbCommand command = new OleDbCommand(sqlQuery, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; // Ensures correct data type handling adapter.Fill(dataTable); return dataTable; } }</code>
Cette méthode utilise la culture actuelle pour garantir une interprétation précise du type de données, évitant ainsi les problèmes courants liés aux valeurs numériques. Cette approche évite le besoin de conversions de type manuelles.
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!