【问题标题】:DataColumn - how to distinguish datetime or datetime2DataColumn - 如何区分日期时间或日期时间2
【发布时间】:2011-05-26 15:17:45
【问题描述】:

我无法识别日期时间数据列的类型。

如果我从 SQL 2008 中获取 DataTable,则 datetime DataColumn 可能是 datetime 或 datetime2,但在 C# 中似乎没有区别。

我需要在加载到 SQL 之前验证数据...

有什么想法吗?

【问题讨论】:

  • 在读取类型是否为SqlDbType.DateTime2 时,您可以做一些检查。将数据库类型更改为 datetime2 是不可能的吗?
  • 是的,我的解决方案必须假设 Sql 表中可以包含任何列和数据类型。它也可以是 SQL 2005 db - 仅限日期时间...

标签: c# datetime types datacolumn datetime2


【解决方案1】:

从DateTime到DateTime2的精度和范围不同,你大概可以从this blog post得到一个验证。

【讨论】:

  • 当然,我了解 SQL 数据类型的差异。我的问题是从 datetime Sql 列生成的 DataColumn 的 C# 属性与从 datetime2 Sql 列生成的 DataColumn 具有完全相同的属性。我需要找到一种方法来确保日期对于可能是 datetime Sql 列的内容有效。
【解决方案2】:

我决定放弃使用 DataColumn 属性来读取表的架构,因为它在一些地方不准确(唯一总是 = false,长度总是 = -1)。

我最终改为从 Sql INFORMATION_SCHEMA 视图中检索架构定义。

有谁知道为什么这些属性在读取 DataTable 的模式时无用?它们根本没有描述数据库表的真实结构......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-29
    • 2014-11-10
    • 2017-04-18
    • 2014-01-29
    • 2020-10-19
    • 2018-01-28
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多