2012-06-14 12 views
5

W DataTable mogłem sortowania zDataSet sortowania

dataTable.DefaultView.Sort = "SortField DESC"; 

Dostaję DataSet z bazy danych, zastanawiałem się, co mogłem zrobić sortujący na DataSet jak jak to zrobić w DataTable.

+2

myślę, że trzeba zobaczyć link.http: //msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx –

Odpowiedz

15

nadal można uzyskać dostęp do DataTable z danych przedstawionych w następujący

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

Nadzieja to pomaga.

+0

będę try to, dzięki. –

+0

Co to jest kolejność malejąca lub co? –

+0

@MdAslam np. '" Fieldname DESC "' lub '" Fieldname "' (domyślnie ASC) – Dwza

2

Od tha obiektu DataSet, można uzyskać dostęp do wszystkich DataTable do intract z.

Spróbuj tego:

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

dostęp do DataTable z tej DataSet następująco,

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

nadzieję, że to pomaga.

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

Spróbuj następującego kodu.

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

Dla potrzeb zaawansowanego sortowania możesz użyć LINQ, jak opisano here. Zasadniczo umożliwia tworzenie DataView z kwerendy LINQ przy użyciu metody rozszerzenia System.Data.DataTableExtensions.AsDataFiew.

Alternatywnie, jeśli jesteś w porządku (lub może nawet wolisz) przy użyciu IEnumerable , możesz użyć metody rozszerzającej System.Data.DataTableExtensions.AsEnumerable. Na przykład:

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