1. 程式人生 > >vs2010 裡無法引用oracle

vs2010 裡無法引用oracle

vs2010裡 預設是無法使用oracle的,

在.net 選項卡里 也無法找到。只能通過瀏覽,找到vs安裝地址

C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.OracleClient.dll

新增引用,就可以使用了

 1、OracleClient方式,是微軟專門針對Oracle資料庫開發的,僅在 .NET Framework 1.1 版中受支援。據說速度快、效能好,是推薦使用的方式。但根據我的經驗,當Oracle資料庫伺服器端採用英文字符集比如 US7ASCII 時,客戶端不管字符集如何設定,讀出的中文都是亂碼;若伺服器端用中文字符集比如 ZHS16GBK ,則無亂碼問題。
  引用類庫:System.Data.OracleClient.dll。 
  名稱空間:System.Data.OracleClient。
  常用類:OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction、OracleDataReader等。
  典型連線字串:“data source=oratest;user id=scott;password=tiger”(注意:可不指定 provider 驅動)。
  2、 OleDb方式,微軟和Oracle公司各自提供了OleDb的驅動程式,使用方法的差別很少。不管Oracle伺服器端用何字符集,讀寫中文均無亂碼問題。
  名稱空間:System.Data.OleDb。
  常用類:OleDbConnection、OleDbCommand、OleDbDataAdapter、OleDbTransaction、OleDbDataReader等。
  連線字串:與OracleClient方式相比,要新增一個provider,微軟為“provider=MSDAORA.1;”或“provider=MSDAORA”,Oracle為“provider='OraOleDb.Oracle';”。

      3、 oracle 提供的Oracle Data Provider for .NET(ODP.net)
    引用類庫:Oracle.DataAccesss.dll 【安裝oracle for .net的安裝包Oracle Data Provider for .NET】
    名稱空間:Oracle.DataAccess.Client和Oracle.DataAccess.Types【Oracle.DataAccess.Client用於設定資料庫的連線等等通用功能,Oracle.DataAccess.Types用於設定

oracle自定義的一些資料型別】
    常用類:OracleConnection、OracleCommand、OracleDataReader 等
    連線字串:和OleDb方式格式相同,只是provider換為 “Provider=OraOLEDB.Oracle.1”

      4、dotConnect For Oracle是Devart公司出品的一個.net平臺訪問Oracle資料庫的一個驅動。它的專業版本是一個收費版本提供了許多別的驅動所沒有的功能與特性,如對Linq To Oracle,Ado.Net Entity Framework For Oracle支援等。我們一般不會去買它來作開發,在實際專案中使用它的破解版本也不太合適。這裡我們使用的是它的Express免費版本,這個版本提供的功能和微軟和Oracle提供的版本基本一致。這個版本可以從下面的連結下載。
http://www.devart.com/dotconnect/oracle/dcoraclefree.exe

我考慮使用這個免費版本的理由如下:
1. 微軟將在最新版本的.Net Framework中(4.0中吧),不再提供它們的Oracle驅動。這使用我對其它廠商提供的Oracle驅動產生了好感。
2. 使用微軟提供的驅動有個幾乎是無法解決的問題,就是OCI-22053 溢位錯誤 overflow error。Oracle 數值資料型別最多可儲存 38 個位元組的精度。當將 Oracle 數值轉換為公共語言執行庫資料型別時,Oracle 值可能會變得過大。這會導致 Oracle OCI-22053 溢位錯誤。特別是我們獲取用avg等SQL函式算出來的數值時,經常會碰到這個問題。解決的辦法是把數值精度在SQL語句中截短或把數值轉換成字串。但這總有點不爽吧。而 Devart dotConnect For Oracle則沒有這個問題。
3. dotConnect For Oracle對Oracle資料庫的各種編碼都支援的很好。
4. dotConnect For Oracle可以在沒有安裝Oracle Client的機器上訪問Oracle資料庫服務。
5.效能上的考慮。按照Devart提供的資料,dotConnect For Oracle在效能上比微軟和Oracle提供的驅動都要好。具體可以參