Как изменить имя столбца DataTable?

118

У меня есть один DataTable с четырьмя столбцами, например

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

Здесь я вставляю этот Datatable в таблицу сервера Sql, передавая этот datatable как XML-таблицу.

Я просто хочу изменить имя столбца DataTable «Marks» на «SubjectMarks» и передать этот DataTable как XML-таблицу.

Я знаю, как передать DataTable в виде XML-таблицы. Но я не знаю, как изменить имя столбца DataTable «Marks» на «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}

]

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

tanteng
источник
0

Использовать это

dataTable.Columns["OldColumnName"].ColumnName = "NewColumnName";
Анураг Деокар
источник
0

Использование:

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

или

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
Субхаш Шайни
источник