8

我创建了动态表

 DataTable date = new DataTable();
 date.Columns.Add("date1");

并使用日期填写列名“date1”

date1(Column name)
05-07-2013
10-07-2013
09-07-2013 
02-07-2013 

并填写我的动态表

现在我希望这个动态表数据按升序或降序排序

For eg:

date1(Column name)
02-07-2013
05-07-2013
09-07-2013 
10-07-2013 
4

4 回答 4

12

原始数据表无法做到这一点。但是,您可以创建一个新的、排序的:

DataView view = date.DefaultView;
view.Sort = "date1 ASC";
DataTable sortedDate = view.ToTable();
于 2013-07-10T13:34:02.177 回答
4

你可以使用DataTable.Select(filterExpression, sortExpression)方法。

以指定的排序顺序获取与筛选条件匹配的所有 DataRow 对象的数组。

date.Select("", "YourColumn ASC");

或者

date.Select("", "YourColumn DESC");

作为替代方案,您可以使用DataViewlike;

DataView view = date.DefaultView;
view.Sort = "YourColumn ASC";
DataTable dt = view.ToTable();
于 2013-07-10T13:31:35.843 回答
1

以为我会在这里付出我的两分钱。与其使用需要时间和计算性能的排序算法,不如倒转将数据添加到数据对象的方式。

这不适用于每个人的场景 - 但对我自己来说,效果很好。

我有一个按升序列出项目的数据库,但是为了便于使用,我需要反转人们查看数据的方式(DESC),以便最新的输入显示在顶部,而不是列表的底部.

所以,我只是改变了我的 for 循环,所以它不是从 0 -> 向上工作,而是从数据表的长度开始(-1 停止溢出),然后在 >= 到 0 时停止;

private Dictionary<string, string> GetComboData(string table, int column, bool id, int idField = 0)
{
    SqlClass sql = new SqlClass(database);
    Dictionary<string, string> comboBoxData = new Dictionary<string, string>();

    if (sql.connectedToServer)
    {
        sql.SelectResults(SQLCommands.Commands.SelectAll(table));

        for (int i = sql.table.Rows.Count-1; i >= 0; i--)
        {
            string tool = sql.table.Rows[i].ItemArray.Select(x => x.ToString()).ToArray()[column];
            string ID = sql.table.Rows[i].ItemArray.Select(x => x.ToString()).ToArray()[idField];

            comboBoxData.Add(ID, tool);
        }

    }

    return comboBoxData;
}
于 2015-08-05T08:12:09.407 回答
0

使用 OrderByDescending()

          @foreach (var rca in Model.OrderByDescending(x=>x.Id))
            {
                <tr class="heading">

                    <td>@rca.PBINo</td>

                    <td>@rca.Title</td>

                    <td>@rca.Introduction</td>

                    <td>@rca.CustomerImpact</td>

                    <td>@rca.RootCauseAnalysis</td>
               </tr>
             }
于 2019-04-05T06:55:22.447 回答