如何在datagridview中按日期排序
本文关键字:日期 排序 datagridview | 更新日期: 2023-09-27 18:26:25
如何在数据网格视图中按小时排序?我使用了一个没有格式的XML文件,其中包含一个数据集和一个数据网格视图。
代码c#winforms:
FileStream stream = new FileStream("file.xml", FileMode.Open);
ds.readXml(stream);
Stream.Close();
datagridview1.DataSource = ds.Tables[0];
ds.Tables[0].DefaultView.Sort = "start asc";
XML文件
<?xml version="1.0" standalone="yes"?>
<Table>
<hours>
<Start>10:00 AM</Start>
</hours>
<hours>
<Start>11:00 AM</Start>
</hours>
<hours>
<Start>1:00 PM</Start>
</hours>
<hours>
<Start>2:00 PM</Start>
</hours>
</Table>
在我的输出中,它没有排序。下午1:00下午2:00上午10:00上午11:00
您可以添加另一个DateType类型的列,并将其表达式设置为"开始"列的名称,然后使用以下列进行排序:
FileStream stream = new FileStream("file.xml", FileMode.Open);
DataSet ds = new DataSet();
ds.ReadXml(stream);
ds.Tables[0].Columns.Add("Temp", typeof(DateTime), "Start");
stream.Close();
dataGridView1.DataSource = ds.Tables[0];
ds.Tables[0].DefaultView.Sort = "temp asc";
数据似乎是作为字符串而不是DateTime值加载的。它以字符串的形式正确排序。如果希望它按日期排序,则需要将数据从string
转换为DateTime
。以下是转换数据的示例:
var accTable = new DataTable();
var columnSpec = new DataColumn("Date");
columnSpec.DataType = typeof(DateTime);
accTable.Columns.Add(columnSpec);
http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/e6b2aa61-bd1a-40f9-9e45-a538ed42c3d3
转换数据后,它应该按日期排序。
以下是SO关于在数据网格视图中转换数据的另一个问题:
如何在DataGridView C#中以编程方式转换列类型?