OracleException ORA-12154 TNS:无法解析连接标识

时间:2016-07-18 20:25:39

标签: c# wpf oracle odp.net

我正在尝试动态连接到Oracle数据库并从表中提取一些信息。遗憾的是,我无法成功创建OracleConnection对象(使用Oracle.ManagedDataAccess.Client)。我正在从窗口中检索用户输入,然后使用该信息进行连接。

我使用的连接字符串是User Id={0}; Password={1};Data Source = (DESCRIPTION = (ADDRESS=(PROTOCOL=TCP)(HOST={2})(PORT={3}))(CONNECT_DATA=(SID={4})));,其中所有占位符都由表单上的用户提供,并使用connection = string.Format(ConnStrings_WithDB[(int)DataSource.Oracle], Username, ConvertToUnsecuredString(Password), ServerName, Port, Database);

进行格式化

我现在使用的连接字符串是Data Source={0}/{1}@//{2}:{3}/{4},之前已尝试Data Source={0}/{1}@//{2}/{3}。这个产生一个新的错误,如下面更新的截图所示。 CS_1: 0 = username, 1 = password, 2 = server, 3 = port, 4 = database(SID)...CS_2: same as 1, exception is that port is no longer included.

我读到ODP.NET没有引用TNS Names文件,如果它不在可执行文件目录中,所以我也尝试制作TNSNames.ora文件的副本并将其存储在可执行文件目录中,完成后,去掉它。这也行不通。

连接工作按以下方法完成

public bool CreateSqlConnection()
{
    ... erroneous ...
    else
    {
        OraConnection = new OracleConnection(connection);

        try
        {
            // This throws the exception
            OraConnection.Open();
        }
        catch (OracleException ex)
        {
            Debug.WriteLine(ex.Message);
            return false;
        }
    }
    return true;
}

我不确定我哪里出错了,因为我对MSSQL做了同样的事情并发现它相当微不足道。任何帮助,提示,提示或指导都非常感谢!

极端信息和截图。   - 我有一个有效的TNS名称文件。我用它来整天连接数据库。   - tnsnames.ora文件位于:C:\oracle32\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora   - 截图中可以看到确切的例外情况。 ORA-12154 - 创建测试的绝对最小值:

  • 包括" Oracle.ManagedDataAccess.Client"
  • OracleConnection connection = new OracleConnection(<see connection string above>)
  • try { connection.Open(); } catch { }

0 个答案:

没有答案
相关问题