Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有C#windows窗体应用程序的Oracle即时客户端_C#_.net_Oracle_Dll_Instantclient - Fatal编程技术网

带有C#windows窗体应用程序的Oracle即时客户端

带有C#windows窗体应用程序的Oracle即时客户端,c#,.net,oracle,dll,instantclient,C#,.net,Oracle,Dll,Instantclient,我已经找了很久了, 我用C#开发了Windows窗体应用程序,它必须连接Oracle数据库, 此应用程序将在许多使用windows XP和windows 7的电脑上使用 经过长时间的研究,我发现我需要使用OBP.net进行oracle访问,但问题是我无法在每台电脑上安装oracle客户端,但我发现可以在下载5个DLL文件来完成同样的工作 OCI Instant Client Data Shared Library oraociicus10.dll (Basic-Lite version)

我已经找了很久了, 我用C#开发了Windows窗体应用程序,它必须连接Oracle数据库, 此应用程序将在许多使用windows XP和windows 7的电脑上使用 经过长时间的研究,我发现我需要使用OBP.net进行oracle访问,但问题是我无法在每台电脑上安装oracle客户端,但我发现可以在下载5个DLL文件来完成同样的工作

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
但当我发布应用程序时,它并没有连接到Oracle数据库 请帮助我如何让我的Windows Forms应用程序在没有安装Oracle客户端的PC上连接Oracle数据库,如果可以通过上述DLL实现,我如何做到

编辑:

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:“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。-->Oracle.DataAccess.Client.OracleException提供程序与Oracle.DataAccess.Client.OracleInit.Initialize()上的Oracle客户端版本不兼容。


不知道是与windows相关还是缺少一些DLL

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库:


然后,我选择了我将使用的Oracle版本的正确版本,并在我的项目中使用了这些DLL。不过,我不确定再分配有什么限制

还有完全托管的.net连接器,也称为ODP.net托管驱动程序:

我已经在安装了.NET4.0框架的Windows8和WindowsXPSP3上进行了测试,所有测试都按预期进行。对于部署,只需要1个dll(Oracle.ManagedDataAccess.dll),它的重量为6 MB(与即时客户端lite相比,它几乎为40 MB)

更新:使用托管oracle驱动程序的最佳方式可能是通过NuGet()

查看以下线程:


此处列出的DLL为我完成了这项工作(所有DLL都与exe位于同一目录中)。

“它未连接到Oracle数据库”您是否遇到异常(哪一个?)CodeProject示例提供了一些疑难解答提示,你读过这些吗?你在同一个目录中有合适的TNSNAMES.ORA文件吗?或者你有合适的连接字符串吗?谢谢你的回答,编辑我的问题。我已经发现性能明显低于ODP.net安装。