以下数据库连接代码在一个项目中工作,但不在其他项目中工作。
两者
我无法理解可能导致其他项目无法连接到oracle DB的原因。
我没有关于如何使这个项目使用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();
答案 0 :(得分: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
答案 1 :(得分:0)
感谢您的所有帖子。我终于找到了它。它与本地IIS服务器设置有关。成功连接到Oracle的项目是使用visual studio开发服务器...而另一个是无法使用的连接是使用本地IIS服务器。所以我必须授予对tnsnames.ora文件夹的IIS访问权限。
这篇文章真的帮助了我...... Oracle ORA-12154 error on local IIS, but not with Visual Studio Development Server