2013-01-07 85 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

相关问题