asp.net 使用C#对Datetime数据类型的列进行数据集排序

y1aodyip  于 2023-01-27  发布在  .NET
关注(0)|答案(7)|浏览(194)

我有一个数据集(数据集ds),在下面你可以找到数据集内的演示数据字段。在我的数据集中,他们是日期名称列(数据类型-日期时间),我想排序此列。我不能从SQL排序,因为数据集是2个不同的数据集合并。请帮助我如何在数据集中排序。

Date              Volume

07/19/201211:30AM  12

07/18/201201:30PM  13

07/17/201203:30PM  22
db2dz4w8

db2dz4w81#

这是一个简单的Linq-To-DataSet方法:

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

现在你可以把它作为DataSource使用,或者在foreach中枚举它,如果你需要具体化它,你可能需要从它创建一个新的DataTable

DataTable tblOrdered = orderedRows.CopyToDataTable();
jaxagkaj

jaxagkaj2#

您可以从data-set查看create a data
然后可以使用DataView.Sort Property对数据进行排序。
例如

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

了解更多关于Introduction to Filtering and Sorting in Datasets的信息

eoxn13cs

eoxn13cs3#

使用数据视图你可以排序你的数据表。只要把你的数据表放在数据视图中看看下面的例子:
您有一个dtlog表,它有两列,一列是日期,另一列是详细信息。您想按日期列对数据表进行排序。

DataTable dtlog = new DataTable();
dtlog.Columns.Add("date");
dtlog.Columns.Add("details");

1.创建数据视图并将数据表放入视图中

DataView dtview = new DataView(dtlog);
string sortstring = "date DESC"; // sorting in descending manner 
dtview.Sort = sortstring;

2.创建另一个表以保存排序后的数据视图

DataTable dtsort =dtview.ToTable();
u1ehiz5o

u1ehiz5o4#

可以通过DataView执行此操作。如果保存日期时间的列是日期时间列

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

它不适用于将日期时间保存为字符串的字符串列。

gopyfrb3

gopyfrb35#

DataTable的DataView具有排序属性,请将列名传递给它
例如

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

默认排序是按升序
有关详细信息,请参阅链接http://msdn.microsoft.com/en-us/library/system.data.dataview.sort(v=vs.100).aspx

vmpqdwk3

vmpqdwk36#

我发现我的解决方案是在Datatable中添加更多列,这样我们就可以保存DateTime的每个部分:

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

那么我们可以使用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排序的数据表

yvgpqqbh

yvgpqqbh7#

这对我很有效:

dataTableEmpSurvey.DefaultView.Sort = "SNO";
 var dataTableSorted = dataTableEmpSurvey.DefaultView.ToTable();

https://www.codeproject.com/Questions/219205/How-To-Sort-Datatable-in-csharp-net

相关问题