我有一个数据集(数据集ds)及以下,您可以在数据集中找到包含演示数据的字段。 在我的数据集中,它们是名为Date(Datatype- DateTime)的列,我想对此列进行排序。我无法从SQl进行排序,因为数据集是2个不同数据集的合并。 请帮我看看我如何在数据集中进行排序。
Date Volume
07/19/201211:30AM 12
07/18/201201:30PM 13
07/17/201203:30PM 22
答案 0 :(得分:9)
这是一种简单的Linq-To-DataSet
方法:
IEnumerable<DataRow> orderedRows = dataSet.Tables[0].AsEnumerable()
.OrderBy(r => r.Field<DateTime>("Date"));
现在您可以将其用作DataSource
或在foreach
中枚举它。如果您需要实现它,您可能需要从中创建一个新的DataTable
:
DataTable tblOrdered = orderedRows.CopyToDataTable();
答案 1 :(得分:1)
您可以通过DataView执行此操作。如果您持有日期时间的列是日期时间列
DataView dv = DataTable.DefaultView;
dv.Sort = "DateTime-ColumnName ASC";
它不能在字符串列上保存datetime作为字符串。
答案 2 :(得分:1)
您可以data-set
查看create a data。
然后,您可以使用DataView.Sort Property对数据进行排序。
例如
DataView myDataView = DT.DefaultView;
myDataView.Sort = "Date DESC";
答案 3 :(得分:1)
使用Dataview可以对数据表进行排序。 只需将您的数据表放在Dataview中 看下面的例子:
您有dtlog表,该表有两列,一列是日期,另一列是detial。 您想按日期列对数据表进行排序。
DataTable dtlog = new DataTable();
dtlog.Columns.Add("date");
dtlog.Columns.Add("details");
1。创建dataview并将数据表显示在视图中
DataView dtview = new DataView(dtlog);
string sortstring = "date DESC"; // sorting in descending manner
dtview.Sort = sortstring;
2。创建另一个表,您可以在其中保存排序的数据视图
DataTable dtsort =dtview.ToTable();
答案 4 :(得分:0)
DataTable的DataView有一个sort属性,请将列名称传递给它
E.g。
dataSet1.Table[0].DefautlView.Sort = "ColumnName";
默认排序是按升序排列
有关详情,请参阅链接http://msdn.microsoft.com/en-us/library/system.data.dataview.sort(v=vs.100).aspx
答案 5 :(得分: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();
result是我们为dateTime
排序的数据表