从Excel读取:64位系统上的Microsoft.Jet.OLEDB.4.0错误

dev*_*ull 6 .net c# oledbconnection

我正在使用以下方法阅读应用程序中excel表的内容:

 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=Excel 8.0");
 _myDataSet = new DataSet();
 OleDbDataAdapter myCommand = new OleDbDataAdapter(" SELECT * FROM [" + "My Sheet" + "$]", con);

myCommand.Fill(_myDataSet);
con.Close();
Run Code Online (Sandbox Code Playgroud)

这在64位系统中失败并出现错误:

Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册

如何在64位机器上工作?

arc*_*ain 10

Microsoft发布了一个驱动程序发行版,其中包含适用于Access和Excel的64位驱动程序.您可以从MS 下载站点下载64位和32位版本.下载页面还简要概述了在连接字符串中需要更改的内容以引用ACE驱动程序.

简而言之,您安装了64位驱动程序分发版,然后将连接字符串更改为以下内容:

string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=""Excel 8.0;IMEX=1""";
Run Code Online (Sandbox Code Playgroud)


Tom*_*cek 5

Microsoft.Jet.OLEDB没有64位版本,只有32位.将您的应用程序编译为32位(平台目标:构建选项中的x86).