none
找不到 Oracle 用戶端及網路元件。這些元件由 Oracle 公司供應且為 Oracle 8i 以上版本用戶端軟體安裝的一部分。 在安裝這些元件前您無法使用此提供者。 RRS feed

  • 問題

  • 無法使用OleDbConnection,出現以下訊息

    找不到 Oracle 用戶端及網路元件。這些元件由 Oracle 公司供應且為 Oracle 8i 以上版本用戶端軟體安裝的一部分。 在安裝這些元件前您無法使用此提供者。

    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外詳細資訊: System.Data.OleDb.OleDbException: 找不到 Oracle 用戶端及網路元件。這些元件由 Oracle 公司供應且為 Oracle 8i 以上版本用戶端軟體安裝的一部分。 在安裝這些元件前您無法使用此提供者。

    原始程式錯誤:

    行 37: 			{
    行 38: 				OleDbConnection myConnection = new OleDbConnection("Provider=\"MSDAORA.1\";User ID=bbb;password=ccc;Data Source=aaa;persist security info=False");
    行 39: 				myConnection.Open();		
    行 40: 
    行 41: 	//			oracleConnection1

    2006年3月1日 上午 07:38

解答

  • 1.是否安裝Oracle Client?

    2.是否給予ASP.NET存取Oracle Client的權限? 請在檔案總管找到Oracle Client安裝目錄, 按右鍵, 找到內容->安全性, 再將ASPNET(WinXP, 若為2003則為Network Service)使用者加入, 並給予權限!

    3. 重開機

    試試! :-)

    2006年3月2日 上午 01:51

所有回覆

  • 確定你有安裝了 Oracle 8i Client 或更新版本的用戶端軟體 .
    2006年3月1日 下午 03:59
    版主
  • 1.是否安裝Oracle Client?

    2.是否給予ASP.NET存取Oracle Client的權限? 請在檔案總管找到Oracle Client安裝目錄, 按右鍵, 找到內容->安全性, 再將ASPNET(WinXP, 若為2003則為Network Service)使用者加入, 並給予權限!

    3. 重開機

    試試! :-)

    2006年3月2日 上午 01:51
  • .Net 的 Oracle 類別只是讓存取 Oracle 的效能最佳化,並不包含 Oracle Client 。而且你用的是 OleDb 來連。

    在寫程式之前,請先到 Oracle 網站下載 Oracle Client for Windows ,Oracle 9 以後光是 Client 就是滿滿的一片 (6xx MB) ,不用懷疑。自訂安裝時,最小安裝大概也要 2xx MB ,你會問這個問題,表示你對 Oracle for Windows 還不太熟悉,建議你先完整安裝,因為裡面有一些工具要設定。

    安裝完請先設定伺服器的資訊,你的連線字串裡面沒看到伺服器的資訊,伺服器的資訊會更新下面那個檔(單一檔案內可能包含多個伺服器資訊):

    C:\path\OraHome1\network\admin\tnsnames.ora

    之後你的連線字串裡面指定的 Server 就會依據上面檔案內的伺服器連線,這部分若是設定好的話,可以用 VS.NET 內的伺服器總管測試,選擇加入資料庫、選 Oracle 跟驅動程式(程式選用的驅動程式最好跟這邊一樣,因為不確保你安裝的有沒有問題)、輸入伺服器名稱、帳號、密碼,一切都正確的話,才表示你的連線已可正常建立,才去改寫程式。

    連線字串可參考進階按鈕裡面幫你產生的字串。

    Oracle Client 可以手動裝,看配合的 JDK 版本,若是配 JDK 1.5 的話,手動裝所有必要元件的話,至少也要 3xx MB ,不如用 Oracle 的安裝片,Oracle 的安裝片是裝 JDK 1.3 。

    2006年3月2日 上午 03:04