我有Access和Visual Studio应用程序,它们都需要连接到远程MySQL数据库。我已经有一段时间不用处理VS应用程序了,但我一直在处理和增强Access版本。不久前,我的Access应用程序开始出现问题,微软技术人员建议我不应该在64位电脑上使用32位Office应用程序,所以他们建议我卸载Office应用程序并重新安装64位Office。
当然,我在将Access应用程序连接到MySQL数据库时出错,所以我下载并安装了64位MySQL连接器。32位连接器的版本是5.something,而我正在安装的64位连接器是8.something。所以安装没有试图删除任何内容。一旦我重命名了旧的DSN并设置了一个新的DSN(使用64位版本的ODBC数据源(,一切都恢复了正常。
现在我正在尝试使用VS应用程序,但它不会运行,这给了我上面的错误。研究表明,VS到2017年的版本是32位的,所以我认为错误是因为32位应用程序试图使用64位版本的DSN。
所以现在我有两个挑战:
1:安装MySQL连接器会导致之前的版本被删除(因为现在我安装的现有64位版本和新的32位版本都是8.something(。我如何让32位和64位版本的连接器在我的电脑上共存?如果我可以同时安装这两个,我可以保留名为"的64位DSN;MySql";并添加一个新的32位DSN;MySql32";。
2:如果我可以安装两个连接器并创建不同的DSN,我如何更改VS以使用正确的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的内容。
希望有人能帮忙。谢谢
好吧,TallTed用洞察力解决了这个问题。
我没有安装MySQL ODBC连接器(我已经安装了64位版本的(,而是下载并安装了32位.Net连接器。然后,我使用32位ODBC管理员创建了一个新的32位DSN,其名称与64位DSN相同。它似乎允许这样做。一旦创建了DSN,.Net版本就可以正常工作,没有任何更改。
此外,Access应用程序也可以使用64位DSN。
非常感谢你的帮助。。。