【问题标题】:Bulk update column in Data Table based on another column基于另一列批量更新数据表中的列
【发布时间】:2015-07-30 20:14:18
【问题描述】:

我有一个数据表,其中包含格式为 yyyymmdd 的日期。我想在包含该列日期值的表中添加一个日期时间列。

现在的问题是该表包含大量记录,并且遍历所有记录需要一些时间。有没有办法进行批量更新或使用来自this 帖子的表达式?

类似:

table.Columns.Add("MyDate", typeof(DateTime)).Expression = 
DateTime.ParseExact("'strDateField'", "yyyymmdd", new CultureInfo("en-US"));

(上面的声明没有编译,这是预期的,但只是为了提供我正在尝试实现的示例而发布)

【问题讨论】:

  • 什么是编译错误?
  • 无法将类型“System.DateTime”隐式转换为“字符串”
  • 正是它应该给出这个错误,因为 Expression 需要字符串。详情请参考我的回答。
  • 我已经更正了我的回答,请重试。

标签: c# datetime datatable


【解决方案1】:

表达式使用 .net 公开的一组限制 SQL 函数对数据表列进行操作,参考https://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v=vs.110).aspx

你可以试试下面的安排

dt.Columns.Add("MyDate", GetType(Date)).Expression = "SUBSTRING(strDateField,5,2)+'/'+SUBSTRING(strDateField,7,2)+'/'+SUBSTRING(strDateField,1,4)";

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 2015-05-02
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多