Làm cách nào để thay đổi Tên cột DataTable?


118

Tôi có một DataTable có bốn cột như

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

Ở đây tôi đang chèn Datatable này vào bảng máy chủ Sql bằng cách truyền dữ liệu này dưới dạng một Bảng XML.

Tôi chỉ muốn Thay đổi Tên Cột DataTable "Đánh dấu" là "SubjectMarks" và chuyển DataTable này dưới dạng Bảng XML.

Tôi biết cách chuyển DataTable dưới dạng Bảng XML. Nhưng tôi không biết, Làm thế nào để thay đổi Tên cột DataTable "Đánh dấu" thành "SubjectMarks".

Câu trả lời:


251

Thử cái này:

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

1
Xin chào, tôi đã thử giải pháp này nhưng bằng cách nào đó dữ liệu của tôi bị mất khi tôi thay đổi tên cột.
Bat_Programmer

2
Tôi vừa thử giải pháp này ngay bây giờ và nó hoạt động tốt - nó không thực hiện bất kỳ thay đổi nào hoặc xóa sạch dữ liệu cột bên dưới. Có lẽ cái gì khác đang xảy ra trong mã của bạn ...
AshesToAshes

1
điều gì sẽ xảy ra nếu tên gốc 'Marks' có thể chứa khoảng trắng?
lawphotog

27

Đổi tên cột bằng cách thực hiện như sau:

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

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

Mã bổ sung của bạn làm gì ở đây? Thêm nhận xét sẽ hữu ích.
nawfal

1

sau khi tạo XML, bạn chỉ có thể Thay thế các XML <Marks>... content here </Marks>thẻ của mình bằng <SubjectMarks>... content here </SubjectMarks>tag. và chuyển XML đã cập nhật vào DB của bạn.

Chỉnh sửa: Tôi ở đây giải thích quy trình hoàn chỉnh ở đây.

Tạo XML của bạn Giống như bên dưới.

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

Tại đây, bạn có thể gán XML cho biến chuỗi như

string strXML = DataSet.GetXML();

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

và bây giờ chuyển strXML tới DB của bạn. Hy vọng nó sẽ giúp ích cho bạn.


1

thử cái này

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

]

nhập mô tả hình ảnh ở đây


0

Dùng cái này

dataTable.Columns["OldColumnName"].ColumnName = "NewColumnName";

0

Sử dụng:

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

hoặc là

dt.Columns[0].ColumnName = "xyz";
dt.AcceptChanges();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.