Comment changer le nom de la colonne DataTable?


118

J'ai un DataTable qui a quatre colonnes telles que

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

Ici, j'insère ce Datatable dans la table du serveur Sql en passant ce datatable en tant que table XML.

Je veux juste changer le nom de colonne de DataTable "Marks" comme "SubjectMarks" et passer ce DataTable en tant que tableau XML.

Je sais comment passer le DataTable en tant que tableau XML. Mais je ne sais pas, comment changer le nom de colonne de DataTable "Marks" comme "SubjectMarks".

Réponses:


251

Essaye ça:

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

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

2
Je viens d'essayer cette solution maintenant et cela fonctionne bien - il n'a apporté aucune modification ni effacé les données de colonne sous-jacentes. Peut-être que quelque chose d'autre se passe dans votre code ...
AshesToAshes

1
Et si le nom original «Marques» peut contenir des espaces?
lawphotog

27

Renommez la colonne en procédant comme suit:

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

7
 dtTempColumn.Columns["EXCELCOLUMNS"].ColumnName = "COLUMN_NAME";                        
 dtTempColumn.AcceptChanges();

Que fait votre code supplémentaire ici? L'ajout de commentaires aiderait.
nawfal

1

après avoir généré du XML, vous pouvez simplement remplacer vos XML <Marks>... content here </Marks>balises par <SubjectMarks>... content here </SubjectMarks>tag. et transmettez le XML mis à jour à votre base de données.

Edit: J'explique ici le processus complet ici.

Votre XML génère 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 attribuer XML à une variable de chaîne comme

string strXML = DataSet.GetXML();

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

et passez maintenant strXML à votre base de données. J'espère que cela vous aidera.


1

essaye ça

"columns": [
{data: "id", name: "aaa", sortable: false},
{data: "userid", name: "userid", sortable: false},
{data: "group_id", name: "group_id", sortable: false},
{data: "group_name", name: "group_name", sortable: false},
{data: "group_member", name: "group_member"},
{data: "group_fee", name: "group_fee"},
{data: "dynamic_type", name: "dynamic_type"},
{data: "dynamic_id", name: "dynamic_id"},
{data: "content", name: "content", sortable: false},
{data: "images", name: "images", sortable: false},
{data: "money", name: "money"},
{data: "is_audit", name: "is_audit", sortable: false},
{data: "audited_at", name: "audited_at", sortable: false}

]

entrez la description de l'image ici


0

Utilisez ceci

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

0

Utilisation:

dt.Columns["Name"].ColumnName = "xyz";
dt.AcceptChanges();

ou

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.