【问题标题】:Why is GetFieldValue returning null for this DateTime?为什么此 DateTime 的 GetFieldValue 返回 null?
【发布时间】:2012-02-24 16:14:10
【问题描述】:

我有一个数据表,它的数据被输入到一个类中:

MyProperty = myDataRow.GetFieldValue("MyPropertyColumn", DataUtils.NullDateTime);

属性 MyPropertyNullable DateTime,列的值为:

'2010-09-27 00:00:00.000'   AS 'MyPropertyColumn',

当调试器跳过上面的第一行代码时,当我希望将 MyProperty 设置为 DataTable 中的 DateTime 时,MyProperty 为空。这个日期没有被正确解析有什么原因吗?

【问题讨论】:

  • 因为它是一个字符串而不是一个 DateTime 它需要解析,这又取决于几个设置......你为什么不使用 DateTime ?
  • 表格列的类型是什么?它是像 VARCHAR 这样的文本类型还是日期类型?
  • 我将列的值切换为 GETDATE() 并且它起作用了,所以这似乎是打字的问题。然后我将我的列设置为“CONVERT(DATETIME, '2010-09-27 00:00:00.000')”并且它起作用了。
  • System.Data.DataRow 没有名为 GetFieldValue 的方法。 GetFieldValue 是如何定义的?是你自己写的扩展方法吗?
  • Olivier - 你说得对,它是一种扩展方法。我没有意识到它,因为它来自一个引用的库。也许我应该删除这个问题,因为它是一个非常具体的案例?

标签: c# parsing datatable


【解决方案1】:

列值需要作为 DateTime 而不是字符串传入,因此:

CONVERT(DATETIME, '2010-09-27 00:00:00.000') AS 'MyPropertyColumn',

【讨论】:

    猜你喜欢
    • 2022-12-26
    • 2016-12-28
    • 2015-11-25
    • 2015-07-04
    • 2019-09-29
    • 2015-02-25
    • 2015-10-21
    • 2021-08-12
    • 2011-03-18
    相关资源
    最近更新 更多