利用DataView的Sort屬性爲DataTable排序
我們先看看Sort方法定義:
//摘要:
//獲取或設置 System.Data.DataView 的一個或多個排序列以及排序順序。
//返回結果:
//一個字符串,它包含列名,後跟“ASC”(升序)或“DESC”(降序)。在默認情況下列按升序排序。多個列可用逗號隔開。
[ResCategory("DataCategory_Data")]
[DefaultValue("")]
[ResDescription("DataViewSortDescr")]public string Sort { get; set; }
從Sort的定義中我們可以知道,Sort屬性的格式應該是類似於"字段 ASC"或者"字段 DESC",這點和Sql Server中的order by是非常相似的。
下面我們通過一個示例來理解:
{
//先新建一個DataTable,併爲DataTable填充數據
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Rows.Add(3);
dt.Rows.Add(5);
Response.Write("輸出排序前的結果:<br / >");
foreach (DataRow dr in dt.Rows)
{
Response.Write(dr["ID"].ToString() + "<br / >");
}
Response.Write("<br / >");
Response.Write("輸出排序後的結果:<br / >");
Response.Write("<br / >");
//--------開始爲DataTable按ID列從大到小排序---------
DataView dv = dt.DefaultView;
dv.Sort = "ID desc";
dt = dv.ToTable();
foreach (DataRow dr in dt.Rows)
{
Response.Write(dr["ID"].ToString() + "<br / >");
}
}
輸出結果:
運行,打印結果如下:
輸出排序前的結果:
3
5
輸出排序後的結果:
5
3
可以從結果中看出來,DataTable已經按照ID列從大到小排序了。