在没有tnsname.ora的情况下连接到Oracle

时间:2012-08-28 12:32:57

标签: c# .net oracle

我需要从我的.Net应用程序连接到oracle。

我正在考虑使用ODP.NET

有没有办法连接到Oracle而不依赖tnsnames.ora文件?我问的原因是因为我将有数百个不同的连接,我不想依赖该文件。

1 个答案:

答案 0 :(得分:5)

是的,如果您使用包含tnsname.ora数据的连接字符串。


假设您的tnsname条目如下所示:

 YourTnsName =  
  (DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = YourHost)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SID  = YourSid)  
    )  
  )  

而不是在连接字符串中使用YourTnsName,您可以这样写:

var constr = new OracleConnectionStringBuilder()
             {
                DataSource = @"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = YourHost)(PORT = 1521)))(CONNECT_DATA =(SID  = YourSid)))",
                UserID = "userid",
                Password = "password",
             }.ConnectionString;

using (var con = new OracleConnection(constr))
{ 
    ... 
}

因此不需要tnsname.ora中的条目。