我想知道一种简单的方法来按添加日期对列进行排序,例如:
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
Run Code Online (Sandbox Code Playgroud)
所以如果你知道我的意思,我想添加一个选项来对列的Date日期值进行排序.
谢谢
你在尝试使用Linq2Sql吗?如果是这样,你可以这样做:
var result = from x in MyDataTable
orderby x.Date ascending
select x;
Run Code Online (Sandbox Code Playgroud)
(取代ascending的descending,如果你想要去的其他方式).
如果你想对它进行选择性排序,你可以使用IQueryable<T>s并可选择排序,a:
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;
}
Run Code Online (Sandbox Code Playgroud)
如果您直接在SQL中查询,那就行了
SELECT * FROM MyTable ORDER BY Date ASC
Run Code Online (Sandbox Code Playgroud)
(替换ASC用DESC,如果你想让它走另外一条路)
我不经常string在C#中构建SQL查询,但是如果你想让它成为可选项,我想你可以逐步构建查询,即使它真的很粗糙:
string GetSqlQuery(bool sortByDate)
{
string result = "SELECT * FROM MyTable";
if(sortByDate)
{
result += " ORDER BY Date ASC";
}
return result;
}
Run Code Online (Sandbox Code Playgroud)