我一直在寻找这个,
我使用C#开发了
Windows Forms App,它必须连接Oracle数据库,
这个应用程序将在许多使用Windows XP和Windows 7的PC上使用
经过长时间的研究,我发现我需要使用OBP.net进行oracle访问,但问题是我无法在每台PC上安装oracle客户端,但是我发现在
CodePorject Example中工作以下载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窗体应用程序连接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:’Oracle.DataAccess.Client.OracleConnection’的类型初始值设定项引发了异常. —> Oracle.DataAccess.Client.OracleException提供程序与Oracle.DataAccess.Client.OracleInit.Initialize()上的Oracle客户端版本不兼容
Dunno,如果它的窗口相关或一些DLL丢失
最佳答案 还有完全托管的.net连接器,即ODP.NET托管驱动程序:
我已经在安装了.NET 4.0框架的Windows 8和Windows XP SP3上进行了测试 – 所有工作都按预期工作.对于部署,只需要1个dll(Oracle.ManagedDataAccess.dll),其重量为6 MB(与即时客户端精简版相比,几乎为40 MB).
更新:使用托管oracle驱动程序的最佳方法可能是通过NuGet(ODP.NET @ nuget)