2011-10-20 310 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
相關問題