1

10 列の DataTable があります。テーブルを列インデックス 10 で最大から最小に並べ替えたいと思います。これは一部の人にとっては簡単なはずですが、このような DataTable を使用するのはこれが初めてです

私が見つけたすべてのWebサイトは、列名を知っている必要があると言っていますが、それを持っていないため、列のインデックス値で列を参照したいと考えています。そのデータテーブルのすべての行をソートする必要があります

4

2 に答える 2

2

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]);
    }
于 2012-12-07T11:43:57.633 に答える
1

試す

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;
于 2012-12-07T11:32:15.663 に答える