使用 c# 从 .NET 应用程序连接到远程 Oracle 数据库

本文关键字:Oracle 数据库 连接 NET 应用程序 使用 | 更新日期: 2023-09-27 18:35:31

我正在开发一个使用远程'Oracle'数据库的应用程序。 但我在连接到该数据库时遇到了问题。我已按照以下步骤连接到名为"rudresh"的"Oracle 数据库",该数据库位于 IP 地址为"10.10.10.10"的服务器中(错误的 IP,因为我无法共享确切的 IP)。

string oradb = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.10)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=rudresh)));User Id=system;Password=system_db;";
OracleConnection conn = new OracleConnection(oradb);
try
{
    conn.Open();
    string sql = "SELECT * FROM X96TUSER"; // C#
    OracleCommand cmd = new OracleCommand(sql, conn);
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader(); // C#
    dr.Read();
    string test = dr.GetString(0).ToString();
}

但实际上在使用 Conn 打开连接时。Open() 它抛出的异常"System.Data.OracleClient 需要 Oracle 客户端软件版本 8.1.7 或更高版本",但我的 Oracle 版本是 11g。 请任何人,让我知道我做错了什么,或者我需要在服务器中进行任何更改?

使用 c# 从 .NET 应用程序连接到远程 Oracle 数据库

我认为单独的oracle客户端不能独立工作。您是否下载了适用于 Windows 的 ODAC? 安装时,请尝试为不同的安装指定不同的主文件夹,例如。32位回家或64位回家。 首先,您可以尝试32bithome(即使在64位机器上,如果它不起作用,则尝试创建64bithome。

这可能是一个安全问题。 检查您在预言机客户端文件夹中的权限。

另一个可能的原因(IIRC)是具有错误的oracle客户端库(即在32位设置上具有64位版本)。

(当然,这是假设您安装了Oracle客户端)