2011-10-20 185 views
1

我已在我的PC(注册表ORACLE_BASE-D:\ oracle \ product \ 10.2.0)上安装了Oracle客户端版本10g。 我在下面添加了参考。 System.Data.OracleClient。System.Data.OracleClient需要Oracle客户端软件版本8.1.7或更高版本

我收到上面提到的错误。 以下是代码片段。

​​3210

请让我知道什么是领域的关注和Iam missing.I是新的组合Oracle和Asp.Net。

+0

您能正常连接到机器的数据库吗?它是否在通向oracle主目录的环境变量'Path'中? – V4Vendetta

+0

我能够通过Toad连接到数据库。另外,Oracle的路径出现在环境变量中。 –

+0

你可以尝试授予'ASPNET'到Oracle安装文件夹和子文件夹的权限,我认为这可能是问题 – V4Vendetta

回答

2

看起来您正在使用Microsoft oracle客户端。我建议你使用ODP.net驱动程序,因为它更可靠。 (我相信微软客户端已被弃用也?)

http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

安装ODP.net驱动程序,在您的项目添加到Oracle.DataAccess一个参考,你是好去!示例代码(从我的previous post):

using System; 
using System.Data; 
using Oracle.DataAccess.Client; 

static class Program 
{ 
    [STAThread] 
    static void Main() 
    { 
     TestOracle(); 
    } 

    private static void TestOracle() 
    { 
     string connString = 
      "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)" + 
      "(HOST=servername)(PORT=‌​1521)))" + 
      "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));"+ 
      "User Id=username;Password=********;"; 
     using (OracleConnection conn = new OracleConnection(connString)) 
     { 
      string sqlSelect = "SELECT * FROM TEST_TABLE"; 
      using (OracleDataAdapter da = new OracleDataAdapter(sqlSelect, conn)) 
      { 
       var table = new DataTable(); 
       da.Fill(table); 

       if (table.Rows.Count > 1) 
        Console.WriteLine("Successfully read oracle."); 
      } 
     } 
    } 
} 

编辑:我也遇到了“需要Oracle客户端软件版本8.1.7或更高”错误之前。我是由于将Oracle客户端安装到我的电脑上造成的。如果设置为使用Microsoft驱动程序,您可以尝试从计算机上卸载Oracle客户端(讽刺地)。

+0

我有类似的问题以及@Matt的建议在过去也适用于我。 – gcoleman0828

1

“我已经安装了Oracle客户端10g版本我的电脑” “System.Data.OracleClient的需要Oracle客户端软件版本8.1.7或更高”

您正在使用Microsoft Oracle客户端和系统的类型。 Data.OracleClient的固定资产的.NET Framework 4.0,并将从.NET http://msdn.microsoft.com/en-us/library/77d8yct7.aspx

入住以后的版本中删除 如果你仍然在您的计算机上有旧的Oracle客户端(8或更低)。 PATH变量可能仍然指向较早的Oracle客户端bin目录。 如果你从Windows命令行运行'tnsping',并且如果你没有看到版本10,那么它仍然默认为老版本。

在安装较新的Oracle客户端之前,首先卸载所有现有的Oracle客户端总是一个好主意。 然后安装Oracle数据库服务器和组织支持的最高版本的Oracle客户端。

你可能想尝试Oracle客户端11克R2并安装Oracle数据提供程序.NET http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

如果您正在使用的.NET Framework 4.0或更高版本,当你在给Oracle.DataAccess添加引用Visual Studio Project, 请确保该dll是4.xxx,否则浏览到您的客户端位置并选择4.xxx dll

1

仍然需要在客户端计算机上安装Oracle客户端软件以允许连接到Oracle数据库。数据库用户SQL * Net是Oracle数据库的Oracle连接层。 System.Data.OracleClient DLL不提供此功能。

下载Oracle client software

您还必须包括对DLL的引用,当您编译代码。例如,如果你正在编译C#程序,命令行应包括:

像为: - csc /r:System.Data.OracleClient.dll

MSDN

2

基本上在这种情况下,System.Data.OracleClient的需要访问一些不是.Net的一部分的oracle dll。解决方案:

  • 安装Oracle客户端,并添加Oracle客户端箱位置的窗口 或
  • 复制 oraociicus10.dll(Basic的精简版的版本)或aociei10.dll(基本型)的Path环境varaible, oci.dll,orannzsbb10.dll和oraocci10.dll从oracle客户端可安装文件夹复制到应用程序的bin文件夹中,以便应用程序能够找到所需的dll
相关问题