我有一个代码,已经连接到一个MS访问数据库。当我再次打开Visual Studio 2019的数据连接下,数据库文件有一个x。当我尝试测试连接时,它有一个错误
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the machine.
我已经在x64上安装了“Microsoft Access数据库引擎2010(英文)”,从我第一次安装和第一次尝试运行代码开始,它就工作了。这发生了。我找不到问题所在。尽管当我运行代码,即使有一个x上的数据库文件和错误,提供者没有找到我的程序的登录仍然工作,并确定现有的帐户。
###如果你强迫你的项目是x64位?
然后可以使用连接构建器,但测试连接按钮永远不起作用。事实上,测试连接按钮从来没有工作,从来没有工作x64位访问。
然而,当你运行你的代码,连接应该和将工作。
所以:
Access x64 - must set project to x64 bits.
Test connection NEVER works
You can use connection builder(s).
因此,对于x64访问(ACE),你必须运行项目连接工作-测试连接不能工作,因为Visual Studio是一个x32位程序-它不能连接到一个x64位驱动程序。但是F5(调试)或运行将工作,因为如果你强制项目到x64,那么项目将启动和运行作为一个x64位的进程。
所以测试连接从来没有工作在x64位访问。你很可能运行了你的项目——它工作了。但随后尝试尝试测试连接-它永远不会工作。因此,任何连接到ACE/访问必须发生在您运行项目时-在设计期间-测试连接生成器永远不会工作。
Access x32 - you should set/force the project to x86.
Test connection should work.
You can use the connection builders.
你可以使用“任何cpu”,但这只能工作,因为Visual Studio是一个x32位的应用程序。因此,当你点击f5运行时,你会得到一个x32位的“进程内”运行的应用程序实例。但是,我不推荐任何cpu用于x32访问。如果用户从一个x64位的命令行启动。net exe程序(很容易做到),那么你的任何cpu应用程序现在将作为x64位运行,而不是连接到访问x32。
因此,我强烈建议您强制您的项目到正确的位大小,并避免和不使用任何cpu的项目设置。