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

Die*_*ego 1 .net c# oracle

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

我正在考虑使用ODP.NET

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

slo*_*oth 5

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


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

 YourTnsName =  
  (DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = YourHost)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SID  = YourSid)  
    )  
  )  
Run Code Online (Sandbox Code Playgroud)

而不是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))
{ 
    ... 
}
Run Code Online (Sandbox Code Playgroud)

因此不需要进入tnsname.ora.

  • http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnection.aspx表示不推荐使用`OracleConnection`.http://msdn.microsoft.com/en-us/library/77d8yct7.aspx Microsoft建议您使用第三方Oracle提供程序.http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html (3认同)