2012-09-16 65 views
2

我是使用数据库的初学者。我试图从c#应用程序访问Oracle10g数据库。但是,当我这样做,我得到这个错误:将C#应用程序连接到Oracle 10g:ORA-12154:TNS:无法解析指定的连接标识符

ORA-12154: TNS:could not resolve the connect identifier specified"

我用下面的代码:

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

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

+0

数据源名称AFAIK需要注册为TNS名称,它只是说,它不知道你叫ORCL数据库所在。 –

+0

我该怎么做? – amulous

+0

@AmulGarg尝试使用'数据源=本地主机:1521/orcl;用户ID =系统;密码=再见;'。 *免责声明:这是来自内存,我只与Oracle工作过一次。* – Nasreddine

回答

4

启动Visual Studio,打开View菜单+服务器浏览器。在Data Connection + Add Connection +

  1. 点击鼠标右键,选择Oracle Database
  2. 服务器名称:localhostname of your machine,设置好用户名&密码,然后单击测试连接以验证上述参数。如果测试成功,请按OK。

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

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

当我点击确定时,会出现同样的错误信息。 – amulous

+0

@AmulGarg - 启动数据库服务器 - 从开始菜单项目('启动数据库') – adatapost

+0

已经做到了 – amulous

0

甲骨文只是说,它无法找到数据库。

如果你正在运行的本地数据库Express Edition,你应该能够只使用XE作为一个实例名,一切都应该已经成立,否则,您可以在最容易添加到tnsnames.ora

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

tnsping ORCL 

,将告诉你哪些文件Oracle正在使用,试图找到数据库。如果tnsping是未知命令,则在运行之前,您可能需要搜索并找到正确的位置。

一个你找到正确的tnsnames.ora,你需要添加实例ORCL它。应该有一个带有示例的现有文件,如果您需要帮助,该文件的语法太复杂,无法在此处回答,请致电Oracle has quite extensive documentation

+0

嘿谢谢!这有效 – amulous

+0

@AmulGarg如果答案有帮助,您应该将其中的一个解决方案放在一旁并/或标记为解决方案。这将使其他人能够找到解决问题的办法。 –

0

这是一个非常常见的oracle错误。简而言之,这意味着你已经命名了你想连接的数据库,而Oracle不知道你在说什么。我建议6个步骤来修复ORA-12154:

  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

相关问题