在哪里/如何下载(和安装)适用于Windows 8,64位的Microsoft.Jet.OLEDB.4.0?

时间:2012-12-10 23:37:17

标签: .net windows-8

我有一个使用Jet OLEDB 4.0的32位.net 2.0应用程序。

它在Windows 8 32位上运行fin,但不在64位上运行fin。在64位我得到一个错误:

  

'Microsoft.Jet.OLEDB.4.0'提供程序未在本地注册   机。在   System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString   constr,DataSourceWrapper& datasrcWrapper)

我知道您不能将该数据库(驱动程序)与 64 位EXE一起使用。但是我没有读过任何关于它不能使用 32 位exe。

的内容

我尝试了什么:

  1. Installed the MS Access Database Engine 2010 32 bit (and restarted)
  2. 已验证msjet40.dll位于“C:\ Windows \ SysWOW64 \ msjet40.dll”目录中,并使用RegSvr32注册。
  3. 所以我(希望)如果我可以安装数据库支持它就会工作。

    问题是,我找不到任何下载地点。

2 个答案:

答案 0 :(得分:22)

在现代Windows上,此驱动程序不再可用,但您可以在MS站点上以Microsoft Access Database Engine 2010 Redistributable下载。如果您的应用程序是32位,请确保下载并安装32位变体,因为根据我的知识,32位和64位变体不能共存。

根据您的应用程序如何找到其数据库驱动程序,这可能就是所需要的。但是,如果您使用UDL文件还有一个额外步骤 - 您需要编辑该文件。不幸的是,在64位机器上,用于编辑UDL文件的向导默认为64位,它不会看到JET驱动程序,只是打击它在UDL文件中首先找到的驱动程序。有两种方法可以解决这个问题:

  1. 启动32位UDL向导,如下所示:C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\path\to\your.udl。请注意,我可以在Win7 64 Pro上使用此技术,但它不适用于Server 2008R2(可能是我的错误,只是提到)
  2. 在记事本或其他文本编辑器中打开UDL文件,它应该或多或少具有以下格式:
  3. [oledb] ; Everything after this line is an OLE DB initstring Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\To\The\database.mdb;Persist Security Info=False

    这应该可以让您的应用正常启动。

答案 1 :(得分:2)

确保在Visual Studio中的项目上定位x86。这应该可以解决你的麻烦。