根据列索引排序datatable,而不是列名 [英] sorting datatable based on column index not name of column

查看:594
本文介绍了根据列索引排序datatable,而不是列名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个DataTable,它有10列,我想排序表从一个列索引10从最大到最小。我知道这应该是容易的一些,但这是我第一次使用这样的数据表



所有的网站,我发现所有说,你必须知道列名称但我没有,并希望通过列的索引值引用列。它应该排序该数据的所有行

解决方案

您可以使用DefaultView和ColumnName排序。

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

工作示例:

  DataTable dt = new DataTable(); 
//将列定义为DataTable
dt.Columns.Add(Id);
dt.Columns.Add(Name);


//向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(dt.DefaultView中的DataRowView drv)
{
for(int i = 0; i 控制台。 WriteLine(drv [i]);
}


I have a DataTable which has 10 columns, I would like to sort the table by a column index 10 from largest to smallest. I know this should be easy for some but this is my first time using such a DataTable

all the website that i have found all say that you have to know the column name but i dont have that and would like to make reference to the column by the index value of the column. which should sort all the rows in that datatble

解决方案

You can use the DefaultView and the ColumnName to sort.

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

Working example:

    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,而不是列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆