我有一个使用 Jet OLEDB 4.0 的 32 位 .net 2.0 应用程序。
它在 Windows 8 32 位上运行 fin,但不在 64 位上运行。在 64 位上,我收到一个错误:
'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
我知道您不能在 64 位 EXE 中使用该数据库(驱动程序)。但是我没有读到任何关于它不能与 32 位 exe 一起工作的内容。
我试过的:
所以我认为(希望)如果我可以安装数据库支持,它就会起作用。
问题是,我找不到任何下载它的地方。
最佳答案
在现代 Windows 上,此驱动程序默认不再可用,但您可以下载为 Microsoft Access Database Engine 2010 Redistributable在 MS 网站上。如果您的应用程序是 32 位,请务必下载并安装 32 位变体,因为据我所知,32 位和 64 位变体不能共存。
根据您的应用程序如何定位其 db 驱动程序,这可能就是所需要的。但是,如果您使用 UDL 文件,还有一个额外的步骤 - 您需要编辑该文件。不幸的是,在 64 位机器上,默认情况下用于编辑 UDL 文件的向导是 64 位,它不会看到 JET 驱动程序,而只是拍打它在 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 上不起作用(可能是我的错误,只是提及)[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
这应该允许您的应用程序正确启动。
关于.net - 我在哪里/如何下载(和安装)适用于 Windows 8、64 位的 Microsoft.Jet.OLEDB.4.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811179/