2014-06-16 65 views
0

以下数据库连接代码在一个项目中工作,但不适用于其他项目。Visual Studio项目Oracle连接适用于一个项目,但不适用于其他项目

两个

  1. 驻留在同一文件夹
  2. 访问相同Oracle.dataaccess DLL

我无法理解什么可能导致其他项目无法连接到Oracle数据库。

我对如何使这个项目使用tnsnames.ora中的连接字符串没有意见。

任何帮助表示赞赏

代码

string constr = "Data Source=Dev11G;User Id=Username;Password=pwd;"; 
OracleConnection con = new OracleConnection(constr); 
con.Open(); 
OracleCommand cmd = new OracleCommand("Select * from Table", con); 
cmd.CommandType = CommandType.Text; 
DataTable dt = new DataTable(); 
using (OracleDataAdapter da = new OracleDataAdapter()) 
{ 
    da.SelectCommand = cmd; 
    da.Fill(dt); 
} 

错误是收到:ORA-12154:TNS:在连接标识符指定
错误存在的在无法解析: con.Open();

+2

哪里是你的相关代码,什么是errormessage的? – Matthijs

+0

我改写了我的问题。 – rajGoogles4Code

+1

验证您的连接字符串是否正确;)请参阅以下信息:http://ora-12154.ora-code.com/ – Matthijs

回答

0

您是否尝试过使用EZCONNECT而不是使用TNS名称? TNS名称在客户端(包括IDE等)上很方便,但任何时候您必须部署应用程序,都依赖于维护该机器的人。如果他们更新TNS名称,它可能会干扰您的应用程序。

连接字符串可以是简单的:

string conString = String.Format("Direct=true;Data Source={0};Port={1};" + 
    "Service Name={2};User={3};Password={4};Connection Timeout={5}", ... 

如果你不知道这些值,你可以在其中找到它的正确设置一台机器:

tnsping Dev11G 
相关问题