2012-03-08 147 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

相關問題