標籤: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資料庫