Come modificare il nome della colonna DataTable?


118

Ho un DataTable che ha quattro colonne come

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

Qui sto inserendo questo Datatable nella tabella del server SQL passando questo datatable come tabella XML.

Voglio solo cambiare il nome della colonna DataTable "Marks" come "SubjectMarks" e passare questo DataTable come tabella XML.

So come passare il DataTable come tabella XML. Ma non so, come modificare il nome della colonna DataTable "Marks" come "SubjectMarks".

Risposte:


251

Prova questo:

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

1
Ciao, ho provato questa soluzione ma in qualche modo i miei dati si perdono quando cambio il nome della colonna.
Bat_Programmer

2
Ho appena provato questa soluzione ora e funziona bene: non ha apportato modifiche o cancellato i dati della colonna sottostante. Forse sta succedendo qualcos'altro nel tuo codice ...
AshesToAshes

1
cosa succede se il nome originale "Marks" può contenere spazi?
lawphotog

27

Rinomina la colonna effettuando le seguenti operazioni:

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

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

Cosa fa il tuo codice aggiuntivo qui? Aggiungere commenti aiuterebbe.
nawfal

1

dopo aver generato XML puoi semplicemente sostituire i tuoi XML <Marks>... content here </Marks>tag con <SubjectMarks>... content here </SubjectMarks>tag. e passa l'XML aggiornato al tuo DB.

Modifica: qui spiego il processo completo qui.

Il tuo XML genera come di seguito.

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

Qui puoi assegnare XML a una variabile stringa come

string strXML = DataSet.GetXML();

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

e ora passa strXML al tuo DB. Spero che ti possa aiutare.


1

prova questo

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

]

inserisci qui la descrizione dell'immagine


0

Usa questo

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

0

Uso:

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

o

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.