【问题标题】:How to sort a column by date added?如何按添加日期对列进行排序?
【发布时间】:2012-03-08 18:15:42
【问题描述】:

我想知道一种按添加日期对列进行排序的简单方法,例如:

ID|Name|Age|Date
1  John 21  20/03/2012
2  Chart 22 21/03/2012
3  Dart  31 22/03/2012
4  Rat   12 23/03/2012

所以我想添加一个选项来对值的日期日期列进行排序,如果你知道我的意思的话。

谢谢

【问题讨论】:

  • SQL表的一列?或一列您如何将数据存储在变量、数据表等中?
  • “日期”是否与“添加日期”相同?你使用什么数据结构?该表是否存在于 SQL 中?到目前为止,您尝试过什么?
  • 您使用哪种技术从数据库中提取数据?你想在源头排序还是在 UI 中排序?您使用哪种技术来显示您的数据?
  • 是Sql数据库,在UI排序,我用gridview sql数据源来显示值
  • 您是如何从 SQL 中获取信息的? Linq2Something,直接文本 SQL 查询等?

标签: c# asp.net sql


【解决方案1】:

您是否尝试使用 Linq2Sql?如果是这样,您可以这样做:

var result = from x in MyDataTable
             orderby x.Date ascending
             select x;

(如果你想让它走另一条路,请将ascending 替换为descending)。

如果您想选择性地对其进行排序,您可以使用IQueryable<T>s 并选择性地排序,例如:

IQueryable<MyDataTable> GetData(bool sortByDate)
{
    var result = from x in DataContext.Table<MyDataTable>
                 where SomeMatchingClause(x)
                 select x;

    if(sortByDate)
    {
        result = result.OrderBy(x => x.Date); // or OrderByDescending
    }

    return result;
}

如果你是直接在 SQL 中查询,就这样做

SELECT * FROM MyTable ORDER BY Date ASC

(如果你想让它走另一条路,请将 ASC 替换为 DESC

我不经常在 C# 中将 SQL 查询构建为 strings,但如果您想将其设为可选,我想您可以逐步构建查询,即使它确实很糟糕:

string GetSqlQuery(bool sortByDate)
{
    string result = "SELECT * FROM MyTable";
    if(sortByDate)
    {
        result += " ORDER BY Date ASC";
    }
    return result;
}

【讨论】:

  • 我在按钮上使用 SELECT * FROM MyTable ORDER BY Date ASC ,sqlconnect,sqlcommand 和字符串选择并执行标量。什么都没发生
  • 您是否将MyTable 替换为您的表的实际名称?我对SqlConnectSqlCommand 相当陌生,但似乎ExecuteScalar 可能不是带回一组表格数据的正确方法。看着这个(msdn.microsoft.com/en-us/library/…),似乎ExecuteReader 是你需要做的?
  • 是的,什么也没发生,行在同一个位置。如果还有另一种简单的方法,请解释我该怎么做。非常感谢
  • 这就是您在 SQL 中对行进行排序的方式。看起来您显示了一个表,其 Dates 已预先排序:将 ASC 更改为 DESC,它应该以相反的顺序显示。
  • 什么都没发生,行在同一个位置,需要从日期列按日期排列
【解决方案2】:

在您的 SQL 查询中,最后按 DATE 排序

【讨论】:

  • 是Sql数据库,在UI排序,我用gridview sql数据源来显示值
  • 如果您有 Linq 工作,请使用上面发布的 eouw0o83hf 的答案。 Linq 允许您在数据来自数据库后对数据进行排序,这意味着您不必更改 SQL 代码。如果您没有 Linq,您可以更改您的 SQL 代码来对数据进行排序。希望这会有所帮助。
猜你喜欢
  • 2020-12-22
  • 1970-01-01
  • 2020-01-15
  • 2014-07-06
  • 2012-04-23
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
相关资源
最近更新 更多