2009-07-22 61 views
0

我想在C#程序的組合框中列出Microsoft Access 2000-2007(取決於MS Access數據庫版本)的數據類型。我怎樣才能做到這樣的事情?如何獲取MS Access數據類型的列表?

+0

你想訪問數據類型或Jet/ACE數據類型嗎?可能因爲您使用的是C#,您只需要Jet/ACE數據類型,但它可能是您使用的數據庫是由Access創建的,並使用特定於Access的數據類型(這通常是帶有擴展的常規Jet/ACE數據類型屬性,例如超鏈接字段,它是一個具有特定設置的備忘錄字段,用於指示訪問它是超鏈接字段而不僅僅是常規備忘錄字段)。 – 2009-07-23 01:09:21

+0

是的,我想使用特定的MS Access數據類型。如果我沒有錯誤的是ACE與MS Access 2000-2007兼容?我試圖讓我的程序能夠打開MS Access 2000-2007數據庫。因此,例如,如果我打開一個MS Access 2003,我希望我的程序能夠使用任何特定於MS Access 2003的數據的數據類型。如果我打開一個MS Access 2007數據庫,它將用於MS Access的任何數據的數據類型2007 ... – Partial 2009-07-23 14:21:02

+0

我正在關閉這個問題,因爲它不夠徹底,我想知道一些其他的東西...這裏是新問題的鏈接:http://stackoverflow.com/questions/1172617/ – Partial 2009-07-23 15:48:14

回答

2

我不認爲有可能在運行時詢問引擎來枚舉它支持的數據類型。例如,DAO不會公開某些Jet 4.0數據類型,例如NCHARBINARY; ADO將揭示Access數據庫引擎從不支持的數據類型;只有ACEDAO會顯示多值類型。

我認爲您需要事先知道引擎支持的每個版本的數據類型,然後在運行時選擇適當的設置。

Jet 4.0數據類型(包括Access 2000到2003)和各種同義詞可以找到here(還應提供一些有關Jet 4.0的新類型的提示,以防您需要支持早期版本的引擎) 。

ACE(Access2007)添加了附件類型;還有多值(「複雜」)類型以支持SharePoint列表:我認爲您需要自行判斷多值類型是不同類型還是僅僅對現有類型的變體。 Access2007 Help中有一些細節。

2

Microsoft.Office.Interop.Access.Dao.DataTypeEnum

當然,你需要添加一個參考,我很討厭將參考辦公室,因爲你綁到一個版本的Office,以及我討厭每次升級時更新代碼。

相關問題