DataTableの列名を変更するにはどうすればよいですか?


118

次のような4つの列を持つ1つのDataTableがあります。

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

ここでは、このデータテーブルをXMLテーブルとして渡すことにより、このデータテーブルをSQLサーバーテーブルに挿入しています。

DataTableの列名「Marks」を「SubjectMarks」に変更して、このDataTableをXMLテーブルとして渡したいだけです。

DataTableをXMLテーブルとして渡す方法を知っています。しかし、DataTableの列名「Marks」を「SubjectMarks」に変更する方法はわかりません。

回答:


251

これを試して:

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

1
こんにちは、私はこの解決策を試しましたが、列名を変更すると、どういうわけかデータが失われます。
Bat_Programmer '20 / 10/20

2
私は今このソリューションを試してみましたが、うまく機能しました。変更は行われず、基になる列データは消去されませんでした。多分あなたのコードで何か他のことが起こっています...
AshesToAshes

1
元の名前「Marks」に空白が含まれている場合はどうなりますか?
lawphotog 2014年

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をDBに渡します。

編集:ここで私はここで完全なプロセスを説明します。

あなたの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をDBに渡します。それがあなたのために役立つことを願っています。


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();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.