如何从 64 位 .NET 程序集创建 Access 2000 数据库?

How to create an Access 2000 database from a 64 bit .NET assembly?

我们的应用程序需要从 VB.NET 创建一个 .mdb (MS Access 2000) 文件。我们为此使用 ADOX 作为连接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;

这很好用。但是,现在我们希望允许 64 位编译我们的应用程序。由于 Jet 4.0 引擎仅为 32 位,因此必须将连接字符串中的 Provider 更改为 ACE 12.0。但是,当我们使用此提供程序时,会创建一个 MS Access 2010 (.accdb) 文件,而我们需要一个 MS Access 2000 (.mdb) 文件。

我们如何解决这个问题?

您可以使用 ACE DAO 代替 ADOX,如下所示:

' required COM reference:
'     Microsoft Office 14.0 Access Database Engine Object Library
' 
' Imports Microsoft.Office.Interop.Access.Dao
'
Dim dbe As New DBEngine
dbe.CreateDatabase("C:\path\foo.mdb", LanguageConstants.dbLangGeneral, DatabaseTypeEnum.dbVersion40)

好吧,我们试试运气

Provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Engine Type=5;

瞧瞧:它似乎有效!