2013-01-07 69 views
4

我一直在尋找這個很長的時間, 我已經開發Windows窗體應用程序使用C#,必須連接Oracle數據庫, 這個應用程序將在許多使用Windows XP的PC上使用和Windows 7 經過長時間的研究,我發現我需要使用OBP.net進行oracle訪問,但問題是我無法在每臺PC上安裝oracle客戶端,但是我發現在CodePorject Example下工作可以下載5個DLL文件來完成相同的工作甲骨文即時客戶端與C#窗體窗體應用程序

OCI Instant Client Data Shared Library 
    oraociicus10.dll (Basic-Lite version) 
    oraociei10.dll (Basic version) 
Client Code Library 
    oci.dll 
Security Library 
    orannzsbb10.dll 
OCCI Library 
    oraocci10.dll 

但是,當我釋放它dosent連接到Oracle數據庫 應用程序請幫助如何IC有我的Windows窗體應用程序連接Oracle數據庫,沒有安裝oracle客戶端的PC,如果這可以通過上述DLLS實現,我可以做到這一點?

編輯:

DataTable dt = new DataTable(); 
OracleConnection Oracle_connection = new OracleConnection(); 
Oracle_connection.ConnectionString = con; 
Oracle_connection.Open(); 

得到了連接超時,在調試模式Oracle_connection.Open();和我不使用TNSNAMES.ORA作爲我的連接字符串是

Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.2.54)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = PRD))) ;User Id=catering;Password=catering;"` 

嘗試發佈它的代碼在Windows 7 PC上工作但在Windows XP上沒有工作 System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize()

不知道是否與windows有關或某些DLL丟失

+1

「它沒有連接到Oracle數據庫」是否收到異常(哪一個?)CodeProject示例有一些故障排除提示,您是否閱讀過這些內容? –

+0

您是否在相同的目錄中有合適的TNSNAMES.ORA文件,或者您是否具有適當的連接字符串? –

+0

感謝您的回覆,我已經編輯我的問題 –

回答

0

ODP.net對於混合版本號很關心。錯誤消息:

System.TypeInitializationException:「Oracle.DataAccess.Client.OracleConnection」的類型初始值設定項引發異常。 ---> Oracle.DataAccess.Client.OracleException的供應商是不是在Oracle.DataAccess.Client.OracleInit.Initialize(版本Oracle客戶端)

表明其拿起錯誤的客戶端DLL版本兼容某處。當我做了一些開發與Oracle和Visual C#2010我下載了ODP.NET庫從:

http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html

然後我把正確版本的Oracle版本我將與合作,並使用這些DLL中我的項目。雖然我不確定重新分配中的限制條件。

2

另外也完全託管的.NET連接器又名ODP.NET管理的驅動程序:

我測試過它在Windows 8和Windows安裝了.NET 4.0框架的XP SP3 - 全部按預期工作。對於部署,只需要1個dll(Oracle.ManagedDataAccess.dll),它的權重爲6 MB(與即時客戶端lite幾乎爲40 MB相比)。

UPDATE:可能是使用管理Oracle驅動程序的最佳方式是通過的NuGet(ODP.NET @ nuget

+0

我發現性能要比ODP.net安裝慢很多。 – Jesse

相關問題