134 votes

Comment changer le nom de la colonne de DataTable ?

J'ai une DataTable qui comporte quatre colonnes, comme suit

 StudentID        CourseID          SubjectCode            Marks    
------------     ----------        -------------          --------
    1               100              MT400                  80
    2               100              MT400                  79
    3               100              MT400                  88

Ici, j'insère cette table de données dans la table du serveur Sql en passant cette table de données comme une table XML.

Je veux juste changer le nom de la colonne de la table de données "Marks" en "SubjectMarks" et passer cette table de données comme une table XML.

Je sais comment passer la DataTable comme une table XML. Mais je ne sais pas comment changer le nom de la colonne de la DataTable "Marks" en "SubjectMarks".

289voto

Moon Points 3308

Essayez ça :

dataTable.Columns["Marks"].ColumnName = "SubjectMarks";

1 votes

Bonjour, j'ai essayé cette solution mais mes données sont perdues lorsque je change le nom de la colonne.

2 votes

Je viens d'essayer cette solution et elle fonctionne bien - elle n'a pas modifié ni effacé les données de la colonne sous-jacente. Peut-être que quelque chose d'autre se passe dans votre code...

1 votes

que faire si le nom original 'Marks' peut contenir des espaces ?

31voto

Saurabh Points 3577

Renommez la colonne en procédant comme suit :

dataTable.Columns["ColumnName"].ColumnName = "newColumnName";

6voto

Hardik Shah Points 188
 dtTempColumn.Columns["EXCELCOLUMNS"].ColumnName = "COLUMN_NAME";                        
 dtTempColumn.AcceptChanges();

2 votes

Que fait votre code additionnel ici ? L'ajout de commentaires serait utile.

1voto

Pankaj Agarwal Points 3807

après avoir généré le XML, vous pouvez simplement remplacer votre XML <Marks>... content here </Marks> tags avec <SubjectMarks>... content here </SubjectMarks>tag . et transmettre le XML mis à jour à votre DB.

Edit : J'explique ici le processus complet ici.

Votre XML est généré comme ci-dessous.

<NewDataSet>
      <StudentMarks> 
          <StudentID>1</StudentID>
          <CourseID>100</CourseID>
          <SubjectCode>MT400</SubjectCode>
          <Marks>80</Marks>
      </StudentMarks>
      <StudentMarks> 
          <StudentID>1</StudentID>
          <CourseID>100</CourseID>
          <SubjectCode>MT400</SubjectCode>
          <Marks>79</Marks>
      </StudentMarks>
      <StudentMarks> 
          <StudentID>1</StudentID>
          <CourseID>100</CourseID>
          <SubjectCode>MT400</SubjectCode>
          <Marks>88</Marks>
      </StudentMarks>
  </NewDataSet>

Ici, vous pouvez assigner le XML à une variable de type chaîne de caractères comme suit

string strXML = DataSet.GetXML();

strXML = strXML.Replace ("<Marks>","<SubjectMarks>");
strXML = strXML.Replace ("<Marks/>","<SubjectMarks/>");

et maintenant passez strXML à votre DB. J'espère que cela vous aidera.

0voto

Anurag Deokar Points 628

Utilisez cette

dataTable.Columns["OldColumnName"].ColumnName = "NewColumnName";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X