手机版

微软报告的错误的解决方案 ACE.oledb.12.0 "提供程序未在本地计算机上注册

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

错误描述:

通过microsoft读取excel文件信息时报告错误。ACE.oledb正在开发中。网络项目:

“那个”微软。ACE.oledb.12.0 "提供程序未在本地计算机上注册"

代码示例:

static void Main(string[]args){ readexcel(' d : \ \ test \ \ xlsxtest . xlsx ');} public static void read xcel(string _ path){ DataTable dt=new DataTable();字符串连接字符串='提供程序=微软。ACE . OLEDB.12.0'数据源=' _ path'扩展属性=\ ' Excel 12.0HDR=否' ';使用(oledb connection connection=new oledb connection(connectionString)){ string SQL='从[sheet1$]中选择* ';尝试{ oledb command comm=new oledb command(SQL,连接);if(连接。状态!=ConnectionState。打开)连接。open();OleDbDataAdapter Adpter=new OleDbDataAdapter(comm);Adpter。填充(dt);} catch(Exception ex){ dt=null;}最后{ if (connection。State==ConnectionState。打开)连接。close();} foreach(dt中的DataRow项。row){ string SDS=item[0]。ToString();控制台。WriteLine(项目[0]。ToString() '//'项[1]。ToString() '//'项[2]。ToString());if(项目[1]。ToString()==字符串。空){ break} }控制台。ReadKey();}}错误报告原因:

主要有几个原因:

1.未安装数据访问组件,需要安装相应版本的数据访问组件(访问数据库引擎)。

2.未安装对应版本的Office客户端,需要安装对应版本的Office客户端;

3.IIS应用程序池中未配置默认属性,需要在相应的IIS应用程序池中启用32位应用程序。

4.连接字符串的问题。与微软合作。Jet.OleDb.4.0,可以在excel2007之前阅读版本。您不需要在客户端部署office。使用微软时。Ace.OleDb.12.0,需要安装引擎。

5.对了,用“微软”的时候。Jet.OLEDB.4.0”,将会报告类似的错误。原因可能是微软。64位系统不支持Jet.OLEDB.4.0,架构需要从x64修改为x86,无论是WinForm还是ASP.NET。或者修改到微软的连接字符串;王牌;oledb12;0并安装AccessDatabaseEngine x64数据访问组件;

解决方案:

1.安装数据访问组件:

1)2007年办公室

Microsoft Access数据库引擎2007办公系统驱动程序:数据连接组件

https://www.microsoft.com/zh-cn/download/details.aspx?Id=23734(此链接已过期,直接使用Microsoft access数据库引擎2010可再发行版即可)

2)2010年办公室

Microsoft Access数据库引擎2010可再发行版

https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

此下载将安装一组组件,非Microsoft Office应用程序可以使用这些组件从2007/2010 Office系统文件中读取数据,例如Microsoft Office access 2007/2010(MDB和accdb)文件和Microsoft Office excel 2007/2010(xls、xlsx和xlsb)文件。它们还支持与Microsoft windows SharePoint服务和文本文件的连接。

此外,还安装了ODBC和OLEDB驱动程序,供应用程序开发人员在开发连接到Office文件格式的应用程序时使用。

2.在IIS应用程序池中,设置“启用兼容的32位应用程序”,适用于web项目;

如图所示:

注意:

下载Microsoft access数据库引擎2010可再发行版时,您将选择下载x86或x64,如图所示:

前提是服务器是x64还是x86,两个版本的x64服务器都可以安装。

如果你下载安装x64,那么你的桌面程序应该选择anycpu或者x64来发布,web项目是不兼容的,不管你怎么发布;

如果下载安装是x86,那么你的桌面程序应该是x86发布的,web项目应该是正常发布的。

*总结:如果是web项目,可以下载x86,只需释放anycpu,然后将应用池设置为32位兼容。

*最后,有了这个,就不需要安装办公软件了;

-

3.连接字符串

主要有以下两种情况:

1)使用Office 2007 OLEDB驱动程序(ACE 12.0)连接到旧的97-2003 Excel工作簿。

提供商=微软。ACE . OLEDB.12.0数据源=c : \ \ my folder \ \ myoldexcellfile . xls;扩展属性=' Excel 8.0HDR=是';“HDR=是;”指示第一行包含列名而不是数据。“HDR=不;”表明相反的情况;

2)读取xlsx格式的excel

提供商=微软。ACE . OLEDB.12.0数据源=c : \ \ my folder \ \ myexcel 2007 file . xlsx;扩展属性=' Excel 12.0 XmlHDR=是';“HDR=是;”指示第一行包含列名而不是数据。“HDR=不;”表明相反的情况;

微软。OLEDB连接字符串参考地址:https://www.connectionstrings.com/ace-oledb-12-0/

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

版权声明:微软报告的错误的解决方案 ACE.oledb.12.0 "提供程序未在本地计算机上注册是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。