数据集使用C#在具有Datetime数据类型的列上进行排序

时间:2012-07-19 07:44:25

标签: c# asp.net

我有一个数据集(数据集ds)及以下,您可以在数据集中找到包含演示数据的字段。 在我的数据集中,它们是名为Date(Datatype- DateTime)的列,我想对此列进行排序。我无法从SQl进行排序,因为数据集是2个不同数据集的合并。 请帮我看看我如何在数据集中进行排序。

Date              Volume

07/19/201211:30AM  12

07/18/201201:30PM  13

07/17/201203:30PM  22

6 个答案:

答案 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";

详细了解Introduction to Filtering and Sorting in Datasets

答案 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

排序的数据表