2012-09-17 316 views
2

我試圖從我的新PC連接到我的Oracle數據庫。我剛剛安裝了Visual Studio和ODAC。但是,當我試圖做一個簡單的連接我得到一個空的消息,空來源,空號碼的異常,只是與錯誤代碼是-2147467259OracleConnection拋出空的異常

OracleConnection Prueba; 
Prueba = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1"); 
Prueba.Open(); 

異常詳細信息
這是Exception.ToString()的代碼:

「Oracle.DataAccess.Client.OracleException在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(的Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure)
at Oracle.Data Access.Client.OracleException.HandleError(的Int32 ERRCODE, 的OracleConnection康恩,IntPtr的opsErrCtx,對象SRC)
在 Oracle.DataAccess.Client.OracleConnection.Open()
在 OracleConnectionS.Program.Main(字串[] args )在 C:\用戶\ Simetri \文檔\ Visual Studio的 2010 \項目\的OracleConnection \的OracleConnection \的Program.cs:行 19"

爲什麼會這樣發生的任何想法?

UPDATE

如果我運行Visual Studio作爲管理員,我不得到的異常,我可以連接到數據庫就好了。

我試着給予Oracle Directory C:\Oracle的完全控制權限。但是,如果我以正常的方式運行Visual Studio(而不是管理員),我會不斷收到異常。

背景信息
- 我使用的是Windows 7 64位
- Visual Studio 2010中
- 我可以用SQL *連接只是找到PLUS

+4

什麼是「空例外「? –

+0

您是否嘗試過連接VS的外部,例如使用TNSPing,然後與SQL Developer? –

+1

@JustinHarvey是的,它工作得很好! – Laggel

回答

3

所以在安裝各種版本的ODAC並搜索與此相關的每一篇文章之後。

最後,Clean安裝的32位版本是解決方案。

  • 首先,您需要卸載您曾經安裝過的所有其他oracle客戶端。
  • 之後,尋找你想要的任何ODAC版本(最新的,如果可能的話),但一定要下載32位版本。

爲什麼?

好東西與在Visual Studio是在開發的版本。如果你正在開發一個控制檯應用程序,你將有與客戶端版本沒有問題,但如果您使用的是Web項目,那麼你肯定需要32 bit版本。

  • 最後確保所有在Visual Studio中的項目的目標平臺是「32位」
  • 和引用新Oracle.DataAccess.dll你剛剛安裝
0

請嘗試重新格式化您的連接字符串成這種形式,看看它是如何工作的

<add name="LoisDataAccess" connectionString="Data Source=LOISPRD;Persist Security Info=True;User ID=ABC;Password=DEF" providerName="System.Data.OracleClient" /> 
+0

我沒有使用微軟的客戶。我使用Oracle的客戶端使用Oracle.DataAccess.Client;' – Laggel

+0

好的,所以提供者名稱會有所不同。 我試圖建議,如果你從連接字符串中刪除不必要的東西,它可以解決你的問題。所有你需要的應該是一個數據源和一個用戶名/密碼 –

0

如果您正在使用的客戶端是「即時客戶端」,那麼你可能是通過複製一些Oracle的DLL文件到更好的解決方案 - 爲walktrough請參閱this

如果可能,我會推薦使用不同的.NET提供程序......在我的經驗中,大多數商業應用程序比Oracle .NET提供程序的問題少得多 - 請參閱here on SO