簡體   English   中英

基於列索引而不是列名來排序數據表

[英]sorting datatable based on column index not name of column

我有一個有10列的DataTable,我想按照從最大到最小的列索引10對表進行排序。 我知道這應該對一些人來說很容易,但這是我第一次使用這樣的DataTable

我發現的所有網站都說你必須知道列名,但我沒有,並希望通過列的索引值引用該列。 應該對該數據中的所有行進行排序

您可以使用DefaultView和ColumnName進行排序。

dataTable.DefaultView.Sort = dataTable.Columns[9].ColumnName + " DESC";

工作范例:

    DataTable dt = new DataTable();
    //Define columns to DataTable 
    dt.Columns.Add("Id");
    dt.Columns.Add("Name");


    //Adding rows to DataTable 
    DataRow row1 = dt.NewRow();
    row1["ID"] = 1;
    row1["Name"] = "Jack";
    dt.Rows.Add(row1);


    DataRow row2 = dt.NewRow();
    row2["ID"] = 2;
    row2["Name"] = "Fruit";
    dt.Rows.Add(row2);

    DataRow row3 = dt.NewRow();
    row3["ID"] = 3;
    row3["Name"] = "Ball";
    dt.Rows.Add(row3);

    dt.DefaultView.Sort = dt.Columns[1].ColumnName + " ASC";

    foreach (DataRowView drv in dt.DefaultView)
    {
        for (int i = 0; i < dt.Columns.Count; i++)
            Console.WriteLine(drv[i]);
    }

嘗試

DataTable dt = new DataTable(); 
//Then fill values 
DataView dv = dt.AsDataView(); // DataView dv = dt.DefaultView();
dv.Sort = dv.Table.Columns[index].ColumnName + " DESC";
dt = dv.Table;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM