将C#app与Oracle 10g连接:ORA-12154:TNS:无法解析指定的连接标识符

我是数据库工作的初学者。 我试图从ac#应用程序访问Oracle10g数据库。 但是,当我这样做时,我得到这个错误:

ORA-12154:TNS:无法解析指定的连接标识符“

我正在使用以下代码:

string oradb = "Data Source=ORCL;User Id=system;Password=goodbye;"; OracleConnection conn = new OracleConnection(oradb); // C# conn.Open(); 

连接字符串oradb是否有错误?

启动Visual Studio ,打开“ View菜单+“服务器资源管理器”

  1. 右键单击Data Connection + Add Connection +选择Oracle Database
  2. server name: localhostname of your machine ,设置用户名和密码,然后单击Test Connection以validation上述参数。 如果测试成功,请按OK。

从属性窗口,您可以获得连接字符串,它应该看起来像:

 Data Source=localhost;Persist Security Info=True;User ID=scott;Password=***********;Unicode=True 

Oracle只是说它无法找到数据库。

如果您运行的是本地Express Edition数据库,则应该只能使用XE作为实例名称,并且应该已经设置了所有内容,否则您可以轻松地将其添加到tnsnames.ora

要找到要更改的正确tnsnames.ora ,您可以尝试(从命令提示符处)

 tnsping ORCL 

这将告诉您Oracle正在使用哪些文件来尝试查找数据库。 如果tnsping是一个未知命令,您可能必须搜索它并在运行之前前往正确的位置。

您找到了正确的tnsnames.ora ,您需要将实例ORCL添加到它。 应该有一个包含示例的现有文件,该文件的语法太复杂,无法在此处回答,如果需要帮助, Oracle有相当多的文档 。

这是一个非常常见的oracle错误。 简单地说,这意味着您已经命名了要连接的数据库,Oracle不知道您正在谈论的是谁。 我建议修复ORA-12154的6个步骤:

  1. 已在tnsnames.ora中正确输入检查实例名称。
  2. 实例或数据库名称末尾不应有控制字符。
  3. 应正确终止TNS条目周围的所有限制
  4. sqlnet.ora中的域名条目不应与完整数据库名称冲突。
  5. 如果问题仍然存在,请尝试在tnsnames.ora中重新创建TNS条目。
  6. 最后,您可以使用SQL * Net Easy配置实用程序添加新条目。

有关oracle网站或此处的更多信息: http : //turfybot.free.fr/oracle/11g/errors/ORA-12154.html