Maison > développement back-end > C++ > Comment puis-je convertir correctement un DataTable en fichier CSV en C# ?

Comment puis-je convertir correctement un DataTable en fichier CSV en C# ?

DDD
Libérer: 2025-01-15 15:46:50
original
461 Les gens l'ont consulté

How Can I Correctly Convert a DataTable to a CSV File in C#?

Convertir efficacement des DataTables en CSV en C#

Cet article présente une méthode robuste pour convertir des objets DataTable C# en fichiers CSV (valeurs séparées par des virgules). La méthode originale présentait des problèmes de séparation correcte des données ; cette solution apporte une approche corrigée et améliorée.

Voici le code optimisé :

<code class="language-csharp">StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames));

foreach (DataRow row in dt.Rows)
{
    IEnumerable<string> fields = row.ItemArray.Select(field => field?.ToString() ?? ""); //Handle null values
    sb.AppendLine(string.Join(",", fields));
}

File.WriteAllText("test.csv", sb.ToString());</code>
Copier après la connexion

Ce code résout le problème d'origine en séparant correctement les données en cellules individuelles dans le fichier CSV. Il exploite les méthodes Select et string.Join de LINQ pour créer efficacement la chaîne délimitée par des virgules pour les en-têtes de colonnes et les lignes de données. L'utilisation de File.WriteAllText garantit que les données CSV sont écrites dans le fichier spécifié. L'ajout de field?.ToString() ?? "" gère les valeurs nulles potentielles avec élégance.

D'autres améliorations, telles que l'échappement des guillemets pour les caractères spéciaux ou les techniques d'optimisation de la mémoire, peuvent être intégrées en fonction des besoins spécifiques de l'application.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal