Visual Studio项目Oracle连接适用于一个但不适用于其他

时间:2014-06-16 20:43:45

标签: c# asp.net oracle visual-studio-2010 windows-7

以下数据库连接代码在一个项目中工作,但不在其他项目中工作。

两者

  1. 驻留在同一个文件夹中
  2. 访问相同的Oracle.dataaccess dll
  3. 我无法理解可能导致其他项目无法连接到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();

2 个答案:

答案 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