我是 VS 和数据库的新手。我正在进行的项目是尝试将旧软件从 VB6 现代化到 VS 2010 C#。这需要搜索外部数据库。所以我试图通过使用 OracleConnection() 连接到该数据库。我在 Windows 7 Enterprise 上使用 Visual Studio 2010 Express。我下载了 Oracle 数据访问组件(ODAC 11.2 Release 5,它是最新的 32 位)。TNSNAMES.ora 文件和连接字符串都已正确解决。
现在我可以使用 Sql*Plus 连接到数据库。旧的 VB6 版本软件在从数据库中检索信息方面也能很好地工作(如果我没有 ODAC 并正确设置了 tnsnames.ora,它将无法工作)。但是,我的 VS C# 没有。它无法打开连接。错误消息是“ORA-12545:连接失败,因为目标主机或对象不存在”。如果我将 DB 主机地址更改为 IP 地址,它会给我“ORA-12560: TNS:protocol adapter error”。
我认为 VS 2010 Express IDE 存在问题。有人对此有任何想法吗?我尝试重新安装 ODAC,但没有帮助。提前非常感谢。
我的代码与此处使用 c# 2010 express 连接到 oracle XE完全相同
更新——已解决
我终于想通了这个问题。就我而言,这在某种程度上与全局程序集缓存中的 DLL 有关。我发现我的项目正在针对为 .NET 2.0 设计的奇怪 ODAC 进行编译。我试图重定向 OracleDBAccess 的引用,但没有帮助。然后我开始了一个新项目,设置了引用权限,然后将所有代码复制到那里。它最终成功了。