0

我正在尝试通过 Microsoft.Jet.OLEDB.4.0 阅读 excel 表。我按照教程编写代码并部署它。它工作正常,但现在经过很长时间我们更改了服务器,现在当我将旧代码部署到新服务器时,它给了我一个错误“'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册。”

我真的不记得我上次做了什么让它运行。我尝试了很多东西,但没有任何效果。

我不能使用任何其他 dll,因为我们没有在服务器上安装办公室。任何人都可以请指导我。

4

2 回答 2

1

下载并安装它:http ://www.microsoft.com/en-us/download/details.aspx?id=13255

于 2013-08-08T21:49:39.880 回答
1

“Microsoft.Jet.OLEDB.4.0”是 32 位驱动程序。如果您使用 AnyCPU 作为平台目标编译应用程序并将应用程序部署在 64 位操作系统上,那么您的代码将作为 64 位代码执行。在这种情况下,您无法引用像 OleDb.4.0 这样的 32 位驱动程序。

您最好的选择是将您的应用程序重新编译为 x86 作为目标平台,然后您的应用程序将作为 32 位代码运行,该代码将在 64 位系统上毫无问题地运行,您将能够使用 32 位 OleDb.4.0。

如果这不可行,那么您应该下载 64 位版本的Microsoft Access Database Engine 2010 Redistributable并将其安装在目标服务器上。还要记住将连接字符串更改为

 string conString = "Provider=Microsoft.ACE.OLEDB.12.0;" + 
                    "Data Source=path_to_your_excel_file.xls;" + 
                    "Extended Properties=\"Excel 8.0;HDR=YES\"";
于 2013-08-08T21:55:59.673 回答