找了好久了 我已经使用 C# 开发了必须连接 Oracle 数据库的 Windows 窗体应用程序, 此应用程序将在使用 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();
Debug模式下,我不使用 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
最佳答案
还有完全托管的 .net 连接器,又名 ODP.NET 托管驱动程序:
我已经在安装了 .NET 4.0 框架的 Windows 8 和 Windows XP SP3 上对其进行了测试 - 一切都按预期工作。对于部署,只需要 1 个 dll (Oracle.ManagedDataAccess.dll),它的重量为 6 MB(与几乎 40 MB 的即时客户端 lite 相比)。
更新:使用托管 oracle 驱动程序的最佳方式可能是通过 NuGet ( ODP.NET @ nuget )
关于c# - 带有 C# Windows 窗体应用程序的 Oracle 即时客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195630/