c#将字符串转换为DataTable中排序选项的日期/日期时间.Select语句

本文关键字:日期 时间 语句 Select 选项 排序 字符串 转换 DataTable | 更新日期: 2023-09-27 18:09:05

我有一个c#程序,从CSV文件读取数据到DataTable。这意味着结果DataTable中的所有列都是字符串。然后,我需要从DataTable中选择符合单个列中共享值标准的行子集。

我的问题在于,我还需要由另一列排序的返回集,这是一个日期。我无法弄清楚如何在选择函数中格式化该排序参数,以将日期的字符串表达式转换为实际日期,以便排序正常工作。

这可以用Select语句完成吗?还是我需要采取另一种方法?

c#将字符串转换为DataTable中排序选项的日期/日期时间.Select语句

可以使用schema.ini https://msdn.microsoft.com/en-us/library/ms709353.aspx加载文件并定义列的类型

你可以试试。这将遍历DataTable中的每一行,并从您指定的列中获取日期的String。它将使用TryParse将String转换为DateTime。如果成功,Row[0]将被设置为DateTime。如果失败,将不会更改行[0]。

在下面的代码中,我将列设置为0,但是您应该将所有0更改为DateTime所在的任何列。

DateTime dateValue;
foreach(DataRow row in dtDataTable.Rows){            
  if(DateTime.TryParse(row[0], out dateValue)){
    row[0] = dateValue        
  }
}

你可以在这里找到更多关于TryParse的信息。TryParse可能会有不可预测的行为,所以为了获得更多的控制,我建议在您获得此工作后升级到TryParseExact。