我有Access和Visual应用程序,需要连接到远程MySQL数据库。我已经有一段时间没有在VS应用程序上工作了,但是我一直在开发和增强访问版本。不久前,我的Access应用程序出现了问题,微软技术公司建议我不要在64位个人电脑上使用32位的Office应用程序,所以他们通过卸载Office应用程序和重新安装64位Office来说服我。
当然,我在将访问应用程序连接到MySQL数据库时出错,所以我下载并安装了64位MySQL连接器。32位连接器是版本5,我正在安装的64位连接器是8,所以安装没有尝试删除任何内容。一旦我重新命名了旧的DSN并设置了一个新的DSN (使用64位版本的ODBC数据源),一切都重新开始工作。
现在我正在尝试使用VS应用程序,它将不会运行,给出了上面的错误。研究表明,VS到2017年的版本是32位,所以我相信错误是因为32位应用程序试图使用64位版本的DSN。
所以现在我有两个挑战:
1:安装MySQL连接器会导致删除以前的版本(因为现在我正在安装的现有64位版本和新的32位版本都是8.s)。如何在我的PC上同时使用32位和64位版本的连接器?如果可以同时安装,我可以保留64位DSN名为"MySql“,并添加一个名为"MySql32”的32位DSN。
2:如果我可以安装两个连接器并创建不同的DSN,我如何更改我的VS以使用正确的?下面是我的App.Config文件的一个片段,我认为这是有问题的区域:
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"/>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</DbProviderFactories>
</system.data>但我没有看到任何东西,指的是特定的DSN。
希望有人能帮忙。谢谢..。
发布于 2021-03-17 22:57:50
好的,用TallTed的洞察力解决了这个问题。
我没有安装已经安装了64位版本的MySQL ODBC连接器,而是下载并安装了32位.Net连接器。然后,使用32位ODBC管理员创建了一个与64位DSN同名的32位DSN。它似乎允许这样做。一旦创建了DSN,.Net版本就会再次工作,不会发生任何更改。
此外,该访问应用程序也工作,使用64位DSN。
非常感谢你的帮助。
https://stackoverflow.com/questions/66646044
复制相似问题