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".

le van
la source

Réponses:

251

Essaye ça:

dataTable.Columns["Marks"].ColumnName = "SubjectMarks";
Lune
la source
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";
Saurabh
la source
7
 dtTempColumn.Columns["EXCELCOLUMNS"].ColumnName = "COLUMN_NAME";                        
 dtTempColumn.AcceptChanges();
Hardik Shah
la source
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.

Pankaj Agarwal
la source
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

tanteng
la source
0

Utilisez ceci

dataTable.Columns["OldColumnName"].ColumnName = "NewColumnName";
Anurag Deokar
la source
0

Utilisation:

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

ou

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
Subhash Saini
la source