2012-06-04 103 views
2

我正在使用.Net Windows應用程序。在App.Config中我給出了這樣的連接字符串...更新到數據庫時出錯:Oracle

<add connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SID=PROD)(SERVER=DEDICATED)));User Id=TEST;Password=TEST;" providerName="System.Data.OracleClient" name="ConnectionString" /> 

我在做一個更新過程。一旦斷點達到更新的方法,我得到消息這樣的..

ORA-12504:TNS:監聽未給SERVICE_NAME在CONNECT_DATA

我應該爲此做些什麼。 ..

我的tnsnames.ora是,

PROD = (DESCRIPTION = 
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
(CONNECT_DATA = 
    (SERVER = DEDICATED) 
    (SERVICE_NAME = Prod) 
) 

+0

檢查tnsnames.ora文件以查找此數據庫的條目。 –

回答

0

我記得當我們想爲Oracle連接指定一個連接字符串時,應該提供服務名稱,其餘信息將從該服務名稱中加載。正如羅米爾在評論中所說的,你必須在tnsnames.ora中創建一個服務名稱。有一個用於創建服務名稱的GUI工具。服務名稱在概念上是連接說明符,連接所需的所有內容都將在其中提供。 使用此獲得更多的信息: Quick Start to Oracle Net Connections

+0

你可以很好的工作_without_tnsnames.ora文件。我正在做一個純粹的app.config連接到Oracle數據庫。 –

+1

是的,你是對的。 –

+1

我已更新我的代碼... – RobinHood

0

給你舉一個例子,這是一個連接字符串,我用在ASP.NET 4.0應用程序連接到Oracle數據庫通過ODP.NET提供商/驅動器:

<add 
    name="oraOdpNet" 
    connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))); User Id=TEST; Password=TEST" 
    providerName="system.data.oracleclient" /> 

我想絕對不是依靠外部 「的tnsnames.ora」 文件。

+1

仍然我得到了同樣的錯誤...我已經更新了我的代碼.. – RobinHood

+0

@RobinHood你確定你實際上在代碼中訪問連接字符串(你命名爲''ConnectionString'「)嗎? –