4

私はデータセット (Dataset ds) を持っています。以下に、データセット内のデモ データを含むフィールドを見つけることができます。私の Dataset では、名前が Date (Datatype-DateTime) の列であり、この列を並べ替えたいと考えています。データセットは 2 つの異なるデータセットのマージであるため、SQl から並べ替えることができません。データセットでソートを行う方法を教えてください。

Date              Volume

07/19/201211:30AM  12

07/18/201201:30PM  13

07/17/201203:30PM  22
4

6 に答える 6

11

これは簡単なLinq-To-DataSetアプローチです。

IEnumerable<DataRow> orderedRows = dataSet.Tables[0].AsEnumerable()
    .OrderBy(r => r.Field<DateTime>("Date"));

DataSourceこれで、それを として使用したり、 で列挙したりできますforeach。それを実体化する必要がある場合は、それから新しいものを作成することをお勧めしますDataTable:

DataTable tblOrdered = orderedRows.CopyToDataTable();
于 2012-07-19T08:36:58.903 に答える
1

からデータビューを作成できますdata-set

その後、DataView.Sort プロパティを使用してデータを並べ替えることができます。

例えば。

   DataView myDataView = DT.DefaultView;  
   myDataView.Sort = "Date DESC";

データセットのフィルタリングと並べ替えの概要について詳しく読む

于 2012-07-19T08:19:47.613 に答える
0

これは DataView で行うことができます。datetime を保持している列が datetime 列の場合

DataView dv = DataTable.DefaultView;
dv.Sort = "DateTime-ColumnName ASC";

日時を文字列として保持する文字列列では機能しません。

于 2012-07-19T07:50:14.730 に答える
0

私の解決策は、次の各部分を保存できる Datatable に列を追加することですDateTime

Tabla.Columns.Add("year", typeof(DateTime));
Tabla.Columns.Add("month", typeof(DateTime));
Tabla.Columns.Add("day", typeof(DateTime));

次にsort、次のデータテーブルを使用できますDataView

DataView myDataView = DT.DefaultView;

case 1: ASC
  myDataView.Sort = "year asc, month asc, day asc"; 

case 2: DESC
  myDataView.Sort = "year desc, month desc, day desc";


Tabla = myDataViwe.toTable();

結果はdateTimeでソートされたデータテーブルです

于 2016-12-12T22:04:50.703 に答える
0

DataTable の DataView には並べ替えプロパティがあります。列名を渡してください

例えば

dataSet1.Table[0].DefautlView.Sort = "ColumnName";

デフォルトのソートは昇順です

詳細については、リンクhttp://msdn.microsoft.com/en-us/library/system.data.dataview.sort(v=vs.100).aspxを参照してください。

于 2012-07-19T07:54:03.257 に答える