Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在datagridview中按日期排序_C#_Xml_Winforms_Datagridview - Fatal编程技术网

C# 如何在datagridview中按日期排序

C# 如何在datagridview中按日期排序,c#,xml,winforms,datagridview,C#,Xml,Winforms,Datagridview,如何在datagridview中按小时排序?我使用不带格式的XML文件和dataset和datagridview 代码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

如何在datagridview中按小时排序?我使用不带格式的XML文件和dataset和datagridview

代码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>

上午10:00
上午11:00
下午1:00
下午2:00
在我的输出中,它没有排序。 下午1:00 下午2:00 上午10:00
上午11:00

数据似乎是作为字符串而不是日期时间值加载的。它作为字符串正确排序。如果要将其排序为日期,则需要将数据从
string
转换为
DateTime
。以下是转换数据的示例:

var accTable = new DataTable(); 

var columnSpec = new DataColumn("Date"); 
columnSpec.DataType = typeof(DateTime); 
accTable.Columns.Add(columnSpec); 

转换数据后,它应按日期排序

下面是关于在datagridview中转换数据的另一个问题:


数据似乎是作为字符串而不是日期时间值加载的。它作为字符串正确排序。如果要将其排序为日期,则需要将数据从
string
转换为
DateTime
。以下是转换数据的示例:

var accTable = new DataTable(); 

var columnSpec = new DataColumn("Date"); 
columnSpec.DataType = typeof(DateTime); 
accTable.Columns.Add(columnSpec); 

转换数据后,它应按日期排序

下面是关于在datagridview中转换数据的另一个问题:


您可以添加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";

您可以添加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";

这些是字符串,不是日期…这些是字符串,不是日期…我尝试过,但如果重新启动应用程序,我会收到一条错误消息:名为“Temp”的列已属于此数据表。是否可以删除添加的列?。。我尝试过关闭应用程序,但没有成功。我尝试过,但如果重新启动应用程序,我会收到一条错误消息:名为“Temp”的列已属于此DataTable。是否可以删除添加的列?。。我试过了,但在我关闭应用程序时没有成功。