fjptwwm2 2019-06-22 16:07 采纳率: 0%
浏览 1084
已采纳

access2017 winform无法连接32位的access2016(Office365 MSO 16.0.11629.20238)如何解决?

首先要说明一下,本人是一名编程爱好者,使用visio studio2017为单位开发软件的,我电脑的操作系统是64位的,用的office软件套装是office 2016。
本人去年开发了一套是开发为asp.net的动态网络,用access2016(Office365 MSO 16.0.11629.20238)(32位)作为动态网站的数据库,毕竟是单位内网使用,对数据库的要求不高。当时开发时就已经报错,并提示了问题上的错误,但本人通过百度找到了解决方案,就是给电脑上安装了AccessDatabaseEngine,并配置好IIS后就可以正常访问了。
今天本人又开发了winform的软件,也是使用access2016(Office365 MSO 16.0.11629.20238)(32位)作为winform的数据库,这次又报错了提示“未在本地计算机上注册‘Microsoft.ACE.OLEDB.12.0’提供程序”,于是本人再次在互联网上搜索,均是给出了asp.net的解决方法(下载并安装AccessDatabaseEngine,但是安装时提示已经安装过了只能进行修复,于是我就没有选择修复),没有winform的解决方案。于是本人想通过安装AccessDatabaseEngine_64.exe软件想解决这个问题,结果系统却报错说我已经安装了office的32位的产品,不能安装AccessDatabaseEngine_64.exe软件。
现在我该怎么办,我很绝望啊!!!请知道真相的大神帮忙解决这个问题,谢谢了!
底下是本人程序中连接access 2016数据库的代码,代码肯定是没问题的,因为在同一台电脑中用asp.net中做连接时都可以正常访问。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E://test.accdb;
  • 写回答

3条回答 默认 最新

  • fjptwwm2 2019-06-30 15:58
    关注

    经过多天的探索,我终于发现了解答的办法,那就是在调试的时候,把anyCPU修改为x86然后就能正常运行了。(选择配置管理器,然后平台那有个新建的按钮,选择新建x86模式即可)
    但是又有一个奇怪的现象,那就是用x86模式进行编译运行时某些第三方的dll就不能用了,真奇怪。因为我之前在vs2008(32位系统)上可以正常运行,并且是在vs2017的x64模式下也没有报错,但就是在x86模式下却不行!然后我使用项目-管理NuGet重新下载这些dll后才正常了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!