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

时间:2013-10-15 12:47:08

标签: c# .net asp.net-mvc entity-framework oracle11g

我正在开发一个使用远程“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。请,任何人,让我知道我做错了什么,或者我需要在服务器上做任何改变吗?

2 个答案:

答案 0 :(得分:0)

这可能是一个安全问题。检查oracle客户端文件夹中的权限。

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

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

答案 1 :(得分:0)

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