2011-05-26 139 views
0

我无法识别日期时间DataColumn的类型。DataColumn - 如何区分日期时间或日期时间2

如果我从SQL 2008中获取DataTable,日期时间DataColumn可能是日期时间或日期时间2,但在C#中似乎没有区别。

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

任何想法?

+0

您可能可以在读取类型是否为'SqlDbType.DateTime2'时做些检查。是否将数据库类型更改为datetime2? – IndigoDelta 2011-05-26 16:11:28

+0

是的,我的解决方案必须假定Sql表可以包含任何列和数据类型。它也可能是一个SQL 2005数据库 - 只有datetime ... – Drammy 2011-05-26 23:42:19

回答

1

我决定使用DataColumn属性来读取表格模式,因为它在一些地方是不准确的(Unique always = false,Length always = -1)。

我最终从Sql INFORMATION_SCHEMA视图中检索了模式定义。

任何人都知道为什么这些属性在读取DataTable的模式时毫无用处?他们根本没有描述数据库表的真正结构...

1

精度和范围不同于DateTime到DateTime2,您大概可以从this blog post派生验证。

+1

当然,我明白SQL数据类型的差异。我的问题是从datetime Sql列生成的DataColumn的C#属性与从datetime2 Sql columm生成的DataColumn具有完全相同的属性。我需要找到一种方法来确保日期对于可能是datetime Sql columm的日期有效。 – Drammy 2011-05-26 23:40:43