Como alterar o nome da coluna DataTable?

118

Eu tenho um DataTable que tem quatro colunas, como

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

Aqui estou inserindo esta tabela de dados na tabela do servidor Sql, passando esta tabela de dados como uma tabela XML.

Eu só quero alterar o nome da coluna DataTable "Marks" como "SubjectMarks" e passar esta DataTable como uma tabela XML.

Eu sei como passar o DataTable como uma tabela XML. Mas eu não sei, como alterar o nome da coluna DataTable "Marks" como "SubjectMarks".

a van
fonte

Respostas:

251

Experimente isto:

dataTable.Columns["Marks"].ColumnName = "SubjectMarks";
Lua
fonte
1
Olá, tentei essa solução, mas de alguma forma meus dados se perdem quando altero o nome da coluna.
Bat_Programmer de
2
Eu tentei essa solução agora e ela funciona bem - ela não fez nenhuma alteração ou apagou os dados da coluna subjacente. Talvez algo mais esteja acontecendo em seu código ...
AshesToAshes de
1
e se o nome original 'Marcas' puder conter espaços em branco?
lawphotog
27

Renomeie a coluna fazendo o seguinte:

dataTable.Columns["ColumnName"].ColumnName = "newColumnName";
Saurabh
fonte
7
 dtTempColumn.Columns["EXCELCOLUMNS"].ColumnName = "COLUMN_NAME";                        
 dtTempColumn.AcceptChanges();
Hardik Shah
fonte
O que seu código adicional faz aqui? Adicionar comentários ajudaria.
nawfal
1

depois de gerar o XML, você pode simplesmente substituir suas XML <Marks>... content here </Marks>tags por <SubjectMarks>... content here </SubjectMarks>tag. e passe XML atualizado para seu banco de dados.

Edit: eu aqui explico o processo completo aqui.

Seu XML gera como abaixo.

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

Aqui você pode atribuir XML a variáveis ​​de string como

string strXML = DataSet.GetXML();

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

e agora passe strXML para seu banco de dados. Espero que ajude para você.

Pankaj Agarwal
fonte
1

tente isso

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

]

insira a descrição da imagem aqui

tanteng
fonte
0

Usa isto

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

Usar:

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

ou

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