欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

错误:未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序

程序员文章站 2022-05-01 19:42:23
今天有朋友咨询学习教程里面数据库一章时,当程序运行到 conn.Open 这个位置时产生错误:未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序。使用的的连接语句:conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=D:\lessons\Northwind1.mdb;"刚看到这个错误,我也比较奇怪,因为教程代码都是在我计算机上都是测试通过的。首先问到的情况是,朋友计算机...

今天有朋友咨询学习教程里面数据库一章时,当程序运行到 conn.Open 这个位置时产生错误:
未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序。

错误:未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序


使用的的连接语句:
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=D:\lessons\Northwind1.mdb;"

刚看到这个错误,我也比较奇怪,因为教程代码都是在我计算机上都是测试通过的。
首先问到的情况是,朋友计算机使用的是office access2016的版本,我的计算机上使用的是2010的版本,初步推测是因为版本问题,网上初步搜索的结果是office 2013对应为 Microsoft.ACE.OLEDB.14.0 ,office 2016对应为 Microsoft.ACE.OLEDB.16.0 。于是显示请他按照这个修改了ConnectionString语句。
但是还是错误。
这次,我仔细搜索了一下,发现不管office 2013还是office 2016,都应该使用Microsoft.ACE.OLEDB.12.0。
于是我就远程看了一下朋友的计算机。发现系统用的64位,office也是64位,将vb.net编辑器下的cpu修改为X64,就运行正确了。
其实在教程《Visual Basic.Net 循序渐进》第19章 数据库操作 第19.3.1节《连接字符串》一节有写开发32位程序和64位程序时候的连接语句不一样,但是忘了写还要与数据库引擎32位还是64位配套,如果64位的数据库引擎(office 64位)那么别忘了开发的程序也需要设置为使用64位CPU。

特此记下防止忘记。

本文地址:https://blog.csdn.net/UruseiBest/article/details/108987861