Maison >développement back-end >C++ >Comment puis-je modifier le type de données d'une colonne DataTable une fois qu'elle est remplie ?

Comment puis-je modifier le type de données d'une colonne DataTable une fois qu'elle est remplie ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-14 12:50:44701parcourir

How Can I Change a DataTable Column's DataType After It's Populated?

Vous ne pouvez pas modifier le type de données ? Cloner DataTable et convertir les colonnes

Vous essayez de changer le DataType d'un DataColumn dans un DataTable. Malheureusement, une fois qu'un DataTable est rempli de données, son DataType ne peut pas être modifié directement.

Pour atteindre vos objectifs, une approche légèrement différente s'impose : le clonage de données. Voici comment procéder :

  1. Clone DataTable : Utilisez la méthode Clone() pour créer une version clonée du DataTable d'origine. Cela crée un DataTable distinct avec la même structure et le même schéma que la table d'origine.
<code>DataTable dtCloned = dt.Clone();</code>
  1. Changer le type de colonne : Dans le DataTable cloné, vous pouvez désormais modifier le DataType des colonnes requises.
<code>dtCloned.Columns[0].DataType = typeof(Int32); // 假设原始列为 Double</code>
  1. Importer des données : Parcourez les lignes du DataTable d'origine et importez-les dans la table clone à l'aide de la méthode ImportRow(). Cela transférera les données avec la valeur d'origine, mais maintenant avec un DataType modifié.
<code>foreach (DataRow row in dt.Rows) 
{
    dtCloned.ImportRow(row);
}</code>

Cette méthode vous permet de convertir le DataType de la colonne une fois qu'elle est remplie de données. N'oubliez pas que le DataTable d'origine reste inchangé et que vous utiliserez à la place le DataTable cloné modifié.

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