Jak zmienić nazwę kolumny DataTable?

118

Mam jeden DataTable, który ma cztery kolumny, takie jak

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

Tutaj wstawiam ten Datatable do tabeli serwera Sql, przekazując ten datatable jako tabelę XML.

Chcę tylko zmienić nazwę kolumny DataTable „Marks” na „SubjectMarks” i przekazać ten DataTable jako tabelę XML.

Wiem, jak przekazać DataTable jako tabelę XML. Ale nie wiem, jak zmienić nazwę kolumny DataTable „Marks” na „SubjectMarks”.

thevan
źródło

Odpowiedzi:

251

Spróbuj tego:

dataTable.Columns["Marks"].ColumnName = "SubjectMarks";
Księżyc
źródło
1
Cześć, wypróbowałem to rozwiązanie, ale w jakiś sposób moje dane giną, gdy zmieniam nazwę kolumny.
Bat_Programmer
2
Właśnie wypróbowałem to rozwiązanie teraz i działa dobrze - nie wprowadziło żadnych zmian ani nie wymazało danych z kolumny. Może coś innego dzieje się w twoim kodzie ...
AshesToAshes
1
a co, jeśli oryginalna nazwa „Marks” może zawierać spacje?
lawphotog
27

Zmień nazwę kolumny, wykonując następujące czynności:

dataTable.Columns["ColumnName"].ColumnName = "newColumnName";
Saurabh
źródło
7
 dtTempColumn.Columns["EXCELCOLUMNS"].ColumnName = "COLUMN_NAME";                        
 dtTempColumn.AcceptChanges();
Hardik Shah
źródło
Co robi tutaj twój dodatkowy kod? Pomogłoby dodanie komentarzy.
nawfal
1

po wygenerowaniu XML możesz po prostu zamienić swoje XML <Marks>... content here </Marks>tagi na <SubjectMarks>... content here </SubjectMarks>tag. i przekaż zaktualizowany XML do swojej bazy danych.

Edycja: tutaj wyjaśniam cały proces tutaj.

Twój XML Generuj Like jak poniżej.

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

Tutaj możesz przypisać XML do zmiennej łańcuchowej, takiej jak as

string strXML = DataSet.GetXML();

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

a teraz przekaż strXML do swojej bazy danych. Mam nadzieję, że to ci pomoże.

Pankaj Agarwal
źródło
1

Spróbuj tego

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

]

wprowadź opis obrazu tutaj

tanteng
źródło
0

Użyj tego

dataTable.Columns["OldColumnName"].ColumnName = "NewColumnName";
Anurag Deokar
źródło
0

Posługiwać się:

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

lub

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
Subhash Saini
źródło