C# 不安裝Oracle用戶端情況下,如何串連到Oracle資料庫

來源:互聯網
上載者:User

標籤:rom   editor   開發   targe   data   常見   密碼   color   size   

簡介:

  在我們開發應用情境經常碰到需要串連Oracle資料庫,這也是相當常見的一種情況。一般.Net環境串連Oracle資料庫,可以通過TNS/SQL.NET 設定檔,而 TNS 必須要 Oracle 用戶端。
  情境一、很多在使用微軟內建的Using System.Data.OracleClient(據說現在已經不維護的)的時候,在沒有安裝Oracle用戶端的伺服器上運行,會提示你需要安裝Oracle用戶端,不過在Oracle 12以後的版本都很少使用這種方法了。
  情境二、也有很多人直接調用了Oracle用戶端下的Oracle.DataAccess.dll(一般在Oracle安裝目錄下的product\11.2.0\dbhome_1\ODP.NET\bin\2.x當中)。但是在程式運行時,碰到最多的情況可能就是,Oracle.DataAccess.Client.OracleException報錯:提供者與此版本的 Oracle 客戶機不相容(一般檢查下原生Oracle的Oracle.DataAccess.dll和你引用的Oracle.DataAccess.dll版本是不是一致的,替換相同的版本就能解決此問題)。
  下面主要介紹,不需要安裝Oracle用戶端,通過最新的ODP.Net方式(Oracle.ManagedDataAccess.dll)直接連接Oracle資料庫。

Oracle全託管驅動Oracle.ManagedDataAccess

  Oracle官網為C#提供了全新的ODP.Net方式的全託管驅動Oracle.ManagedDataAccess,並且還 EF 支援分散式交易,官網(地址還挺不好找的,下載的時候需要Oracle賬戶才行,沒有的話註冊一個也挺快的)—傳送門:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html,:

  下載解壓找到我們需要的Oracle.ManagedDataAccess.dll,如果你使用EF架構,則選擇EF6當中的dll,:

  將Oracle.ManagedDataAccess.dll引用到我們的項目當中,然後檢驗下連結Oracle是否串連成功。

  程式碼片段:

 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using Oracle.ManagedDataAccess.Client; 8  9 namespace ForbiddenTools10 {11     class Program12     {13         static void Main(string[] args)14         {15             Console.Title = "Oracel串連測試";16             string connString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=伺服器IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = 伺服器名稱)));User Id=使用者名稱;Password=密碼;";17             OracleConnection conn = new OracleConnection(connString);18             conn.Open();19             if (conn.State == ConnectionState.Open)20             {21                 string sql = @"select sysdate from dual";22                 OracleCommand cmd = new OracleCommand(sql, conn);23                 Console.WriteLine(cmd.ExecuteScalar());24                 conn.Close();25             }26             Console.ReadKey();27         }28     }29 }

PS:如有疑問,請留言,未經允許,不得私自轉載,轉載請註明出處:http://www.cnblogs.com/xuliangxing/p/8391547.html

C# 不安裝Oracle用戶端情況下,如何串連到Oracle資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.