将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
菜单+“服务器资源管理器”
- 右键单击
Data Connection
+Add Connection
+选择Oracle Database
- server name:
localhost
或name 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个步骤:
- 已在tnsnames.ora中正确输入检查实例名称。
- 实例或数据库名称末尾不应有控制字符。
- 应正确终止TNS条目周围的所有限制
- sqlnet.ora中的域名条目不应与完整数据库名称冲突。
- 如果问题仍然存在,请尝试在tnsnames.ora中重新创建TNS条目。
- 最后,您可以使用SQL * Net Easy配置实用程序添加新条目。
有关oracle网站或此处的更多信息: http : //turfybot.free.fr/oracle/11g/errors/ORA-12154.html