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