C#采用OleDB操作Excel文件解析出错的解决方案 - chunlieater/chunlifeet GitHub Wiki

https://zhuanlan.zhihu.com/p/113092267 当使用C#语言连接Access数据库时,即使安装有64位版本的Office,也会出现“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”这个问题。从Office2016开始,困扰了我好多年。

以往的解决之道(也是网上给出的方法)是:1、彻底卸载并安装32位的Office 2、更改注册表、数据库等相关设置。

但这种方式存在问题:1、局限性大 2、后患无穷。只要你换台电脑,你就得重新把环境配置一遍,费时费力。

经过自己的摸索,找到一种自认为比较简便的解决方式。

先说一下办公环境

操作系统:Win10 Professional x64 Edition

IDE平台:Visual Studio 2019 16.4.6

Access版本:Access 2019 x64 Edition

编程语言与项目类型:C#、WPF应用(.Net Framework 4.8)

解决方法:(就两步,都很关键)

1、安装“Microsoft Access 2010 数据库引擎可再发行程序包 ”

下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255

你是64位的Office,你就安装AccessDatabaseEngine_X64.exe。

你是32位的Office,你就安装AccessDatabaseEngine.exe。

只能二选一,装了一个之后另一个就装不上。

我是64位Office,那必然是安装AccessDatabaseEngine_X64.exe。

2、在Visual Studio中,打开一个“项目/解决方案”之后。

软件右上部分“解决方案资源管理器”→选中项目名称→右键“属性”→生成→目标平台→将“Any CPU”改为“x64”(只能改成x64,其他选项都不行)

注意:

在上述更改之后,在VS中“工具”→“连接到数据库”→“添加链接”页面点“测试链接”仍然会报错,不用理它,因为VS是32位的软件。毕竟用“添加链接”页面的目的是要得到“连接字符串”具体内容,编译正常是最关键的。

补充:

关于第2步

也可以通过改变解决方案的活动平台为x64平台解决(项目的目标平台会自动变为x64)

软件右上部分“解决方案资源管理器”→选中解决方案→右键“属性”→点击“配置管理器”→在“活动解决方案平台”下拉列表选择“新建”→选择新平台“x64”,其他保持默认→点击确定→重新生成解决方案即可。