C#調用Oracle.DataAccess報錯

【前言】

最近開發項目不想再使用低版本的.Net Framework,因爲開發工具升級了,並且調用的第三方庫也都在新版本中有不錯的體驗,我們何必要墨守成規呢?!所以,最終我使用VS2015+.Net Framework4.0+Oracle 11g Client開發新項目。

【問題描述】

我這邊開發環境都搭建好了,但編譯時卻有警告提示“warning CS0618: 'OracleConnection' is obsolete: 'OracleConnection has been deprecated. http://go.microsoft.com/fwlink/?LinkID=144260'”。好多開發朋友都說這就是個提示,不必大驚小怪的,但強迫症還是讓我更換掉了以前引用的“System.Data.OracleClient”庫,改成微軟推薦的“Oracle.DataAccess”庫。

編譯OK了,沒有任何警告和報錯,然後將程序打包給客戶測試。杯具了~客戶那邊鏈接數據庫時提示“‘Oracle.DataAccess.Client.OracleConnection’的類型初始值設定項引發異常”,我就奇怪了,爲什麼我開發測試都沒問題,客戶到底幹了什麼?

【問題分析】

上網找了好多類似情況的解決方法,有人說是跟這個“Oracle.DataAccess”庫版本有關係,我還特意看了一下我的庫真是v2.0版本的應該沒問題。如圖1所示:

                                                                                        圖1

還有人說跟Oracle客戶端安裝版本和多少位有直接關係。但客戶這裏安裝的都是我要求的Oracle 11g client(32位)版本,並且我還特意將軟件安裝包發給大家(以免自己在網上找的版本不正確)所以,客戶的問題應該跟版本沒多大關係。

【解決方法】

最後實在沒有辦法了,我遠程到客戶的電腦,找到環境變量中的“Path”變量對應的值,從中找到Oracle執行目錄。如圖2所示:

                                                                                                 圖2

根據路徑找到指定的目錄,發現我的天啊,客戶電腦上居然沒有。詳細詢問後得知,他將目錄重命名了,說是以爲要跟服務器路徑一致呢!我哭的心都有了!!!

最後將Oracle客戶端安裝的目錄名稱修改回Path值中的名稱即可。

注:如果修改回來還是不好使,請卸載Oracle客戶端,重新安裝一遍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章