Як змінити ім'я стовпця DataTable?


118

У мене є одна DataTable, яка містить чотири стовпці, такі як

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

Ось я вставляю цей Datatable у таблицю сервера Sql, передаючи цю таблицю даних як XML-таблицю.

Я просто хочу змінити назву стовпця "Позначки" DataTable як "SubjectMarks" і передати цей DataTable як XML-таблицю.

Я знаю, як передати DataTable як XML-таблицю. Але я не знаю, як змінити назву стовпця DataTable "Позначки" як "SubjectMarks".

Відповіді:


251

Спробуйте це:

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

1
Привіт, я спробував це рішення, але якось мої дані втрачаються, коли я змінюю ім’я стовпця.
Bat_Programmer

2
Я просто спробував це рішення зараз, і він працює чудово - він не вніс жодних змін і не знищив основні дані стовпців. Можливо, у вашому коді відбувається щось інше ...
AshesToAshes

1
що робити, якщо оригінальна назва "Позначки" може містити пробіли?
lawphotog

27

Перейменуйте стовпець, виконавши наступне:

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

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

Що тут робить ваш додатковий код? Додавання коментарів допоможе.
nawfal

1

після створення XML ви можете просто замінити свої XML <Marks>... content here </Marks>теги <SubjectMarks>... content here </SubjectMarks>tag. і передати оновлений XML у вашу БД.

Редагувати: Я тут пояснюю повний процес.

Ваш XML-генерується як і нижче.

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

Тут ви можете призначити XML строковій змінній на зразок як

string strXML = DataSet.GetXML();

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

і тепер передайте strXML у вашу БД. Сподіваємось, це допоможе вам.


1

спробуйте це

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

]

введіть тут опис зображення



0

Використання:

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

або

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.