2012-03-08 103 views
0

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

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 

所以我想补充一个选项进行排序的值的列日的日期,如果你知道我意思。

感谢

+0

SQL表的列?或者如何将数据存储在变量,数据表等中的列? – 2012-03-08 18:18:27

+0

是'日期'与'添加日期'相同吗?你使用什么数据结构?此表是否存在于SQL中?你试过什么了? – n8wrl 2012-03-08 18:18:34

+0

您使用哪种技术从数据库中提取数据?你想在源代码中排序还是在UI中排序?您使用哪种技术来显示数据? – 2012-03-08 18:18:42

回答

0

在您的SQL查询,在年底

+0

是的Sql数据库,排序它在用户界面,我使用gridview sql数据源来显示值 – 2012-03-08 18:20:19

+1

如果你有Linq工作使用eouw0o83hf的答案上面贴出来。 Linq允许您在数据来自数据库之后对数据进行排序,这意味着您不必更改SQL代码。如果您没有Linq,则可以更改您的SQL代码以对数据进行排序。希望这可以帮助。 – c0d3Junk13 2012-03-08 18:25:38

5

你试图使用LINQ2SQL把按日期?如果是这样,你可以这样做:

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

(由descending如果你想让它去的其他方式代替ascending)。

如果您想排序可选它,你可以使用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 

(用DESC代替ASC,如果你想以另一种方式)

我不经常建立SQL查询为在C#中为10秒,但如果你想使这个可选,我想你可以增量构建查询,即使它非常严重:

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

我在按钮上使用SELECT * FROM MyTable ORDER BY日期ASC,sqlconnect,sqlcommand与字符串select并执行标量。什么都没有发生 – 2012-03-08 19:38:18

+0

你是否用你的表的实际名称替换了MyTable?我很不熟悉'SqlConnect'和'SqlCommand',但看起来像'ExecuteScalar'可能不是正确的方法来取回一组表格数据。看这个(http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx),看起来好像'ExecuteReader'是你需要做的? – eouw0o83hf 2012-03-08 19:45:03

+0

是的,没有任何事情发生,行在同一个位置。如果还有其他简单的方法,请解释一下如何去做。非常感谢你 – 2012-03-08 19:50:51

相关问题