2011-05-26 123 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