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

标签 c# .net oracle dll instantclient

找了好久了 我已经使用 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/

相关文章:

java - 我在哪里可以找到多种语言的正则表达式的单元测试?

c# - 使用可移植类库将东部标准时间字符串转换为 UTC 日期时间

c# - 在 C# 中获取下一个光明节日期

oracle - AWS DMS - 迁移 Oracle 数据库时任务失败

java - hibernate 中的条件连接获取

javascript - 通过 JS (ajax) 的 Put 方法 - 后端返回 badRequest (无效模型)/C#/WebAPI/MVC

c# - 将 SQL 读取到 DataSet 到 XmlDocument

c# - 简单的 C# 并发/多线程

sql - Oracle 根据年份选择日期返回不一致的结果

c# - 关于 C# 命名空间结构的困惑