2012-06-14 74 views
5

DataTable我可以数据集排序

dataTable.DefaultView.Sort = "SortField DESC"; 

我越来越从数据库中DataSet排序,我想知道我可以做一个排序的DataSet像我如何做到这一点的DataTable

+2

我想你一定看到link.http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx –

回答

15

你仍然可以从数据集访问数据表如下,

ds.Tables[0].DefaultView.Sort =" criterian"; 

希望这有助于。

+0

我要去尝试这个,谢谢。 –

+0

这是降序还是什么? –

+0

@MdAslam例如'“Fieldname DESC”'或'“Fieldname”'(ASC默认) – Dwza

2

从Tha DataSet对象,您可以访问所有的DataTable,能够intract。

试试这个:

DataDet.Tables[0].DefaultView.Sort = "sort criteria"; 
4

访问DataTable从该DataSet如下,

ds.Tables[0].DefaultView.Sort = "SortField DESC"; 

希望这有助于。

2
DataSet fileTransferDetail = null;//Data to be sorted. 
DataSet result = null;//Declare a dataSet to be filled. 

//Sort data. 
fileTransferDetail.Tables[0].DefaultView.Sort = "ID DESC"; 
//Store in new Dataset 
result.Tables.Add(fileTransferDetail.Tables[0].DefaultView.ToTable()); 
0

请尝试以下代码。

DataView dv = new DataView(); 
dv = ds.Tables[0].DefaultView; 
dv.Sort=value; 
1

对于高级分类需求,您可能需要使用像描述的here那样的LINQ。基本上它允许使用System.Data.DataTableExtensions.AsDataFiew扩展方法从LINQ查询创建DataView。

或者,如果您使用IEnumerable (或者甚至更喜欢)可以使用System.Data.DataTableExtensions.AsEnumerable扩展方法。例如:

var enumerable = dataSet.Tables[0].AsEnumerable() 
       .OrderBy(x => x.Field<string>("ColumnName") 
       .ThenByDescending(x => x.Field<int?>("OtherColumnName")??0);