错误: [Microsoft][ODBC Driver Manager]找不到数据源名称,也没有指定默认驱动程序

29

在连接.NET到sybase服务器时,我遇到了这个错误信息:

[Microsoft][ODBC驱动程序管理器]未找到数据源名称并且未指定默认驱动程序

这之前一直正常工作。使用相同细节的系统DSN和通过vs.net的数据连接也可以正常工作。

我正在使用VS.NET 2005。

有什么建议吗?


我知道这个问题很老了,是针对vs.net 2005的,但我正在使用Visual Studio 2015 Professional,并且在我的解决方案中开始出现了这个错误。它是一个使用32位ODBC用户DSN的win32程序。由于我的数据库没有64位驱动程序可用,所以我必须使用32位。当我删除我的.sou文件(以解决IDE问题)时,Visual Studio将我的构建设置切换回x64(并导致此错误)。在我的情况下,修复方法非常简单...只需重新设置配置为win32。在IDE中,右键单击解决方案名称->更改“平台”为Win32。 - david1024
4个回答

27

如果你正在使用x64服务器,请记住,对于x86和x64应用程序,存在不同的ODBC设置。在“管理工具”列表中,“数据源(ODBC)”工具会进入x64版本。要查看/编辑x86 ODBC设置,你需要手动运行该版本的工具:

%windir%\SysWOW64\odbcad32.exe (%windir% is usually C:\Windows)

当你的应用程序以x64方式运行时,它将使用x64数据源;而当以x86方式运行时,它将使用相应的数据源。


我在这里尝试了一下,但它一直导致我的ODBC管理员崩溃,有什么想法吗? - Codejoy
我需要在设置中更改什么以运行32位应用程序? - Peru
请将此标记为答案,因为它是问题的适当解决方案。 - Ravi Shankar Kota

4
我遇到了类似的错误,通过安装对应版本的MySQL驱动程序得以解决。你可以从以下链接下载并安装:http://www.connectionstrings.com/mysql-connector-odbc-5-2/info-and-download/,同时按照以下步骤操作:
  1. 打开IIS管理器,在左侧菜单中选择应用程序池。
  2. 选择与该项目相关的应用程序池。
  3. 点击“设置应用程序池默认值”。
  4. 在通用选项卡中,将“启用32位应用程序”设置为“True”。
参考资料:http://www.codeproject.com/Tips/305249/ERROR-IM-Microsoft-ODBC-Driver-Manager-Data-sou

感谢 Honk 的编辑。 - Midhun Kumar Singh Alluru
谢谢,对我来说,MySQL连接器32位版本没有安装。 - Soufiane Neffar

0
对于后来遇到这个问题的人,我在 Windows 网络上遇到了这个问题,并提供一个额外的检查项:
Python 脚本在我的(Linux)机器上从命令行可以连接成功,但某些用户连接时出现问题——这表明 DSN 和凭据是正确的。我们的问题是组安全策略要求在每台机器上设置 ODBC 凭据。一旦我们添加了这个(由于某种原因,用户需要我们各种系统所需的四个 ODBC 凭据中的三个),他们就能够连接成功。
当然,你可以在组级别上做到这一点,但由于其中一台机器简单地遗漏了,所以我在“控制面板>ODBC 驱动程序>New”中进行了设置。

-1

请执行以下步骤:

  1. 在运行窗口中键入 regedit,启动注册表编辑器。
  2. 在注册表中选择以下键:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
  3. 在“安全”菜单中,单击“权限”。
  4. 向用于建立连接的帐户授予完全权限。
  5. 退出注册表编辑器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接