2012-04-03 84 views
0

运行以下功能时,收到以下错误消息。 catch表示它打开连接的线(Me.OracleConn.Open())。VB.NET无法连接到Oracle服务器

我确定服务器存在于TNSNAMES.ora文件中。

Imports NetOracle = System.Data.OracleClient 
... 
Private Property OracleConn As NetOracle.OracleConnection 
... 
    Private Function Connect_To_Oracle() As Boolean 
     Connect_To_Oracle = False 

     Try 

      'Me.OracleConn = New NetOracle.OracleConnection 
      Me.OracleConn = New System.Data.OracleClient.OracleConnection 
      Me.OracleConn.ConnectionString = "Data Source = (DESCRIPTION=" & _ 
         "(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = servername.net)(PORT = ####)))" & _ 
         "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME = risk)));" & _ 
         "User Id=user_name;Password=password;" 

      Me.OracleConn.Open() 
      Connect_To_Oracle = True 
     Catch ex As Exception 
      MsgBox("Oracle Connection Error:" & ex.Message) 
     End Try 


    End Function 

enter image description here

+1

这就是为什么甲骨文顾问能够过上好生活的原因:)错误信息很好。并计算括号。 – 2012-04-03 20:34:01

回答

0

您是否尝试过使用ODP.Net没有TNSNAMES?我发现它比你的系统上的txt文件挣扎相当容易......

连接字符串会是这个样子:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword; 

它基本上是相同的信息,你穿上TNSNAMES而是你把连接信息放在你的web.config中。