最接我們公司的折桂列印平臺系統,決定增加支持新的資料庫:Oracle 資料庫,其中主要代碼是 C#, 其次是 Java, Java 連各種資料庫,很容易,下載 JDBC 驅動程式就可以了,C# 相對麻煩一點,我決定花點時間,進行調研/學習,調通 C# 連接 Oracle(無需安裝 Oracle 客戶端),
經過幾天的網上搜索,中文、英文的資料,都看了不少,絕大多數,不靠譜,根本行不通,說是可以不需要安裝 Oracle 客戶端,文章下方有人反饋,不安裝Oracle 客戶端運行時會報錯,博主都不回應,
偶爾發現,有個方法,C# 使用 sid 連接 Oracle(無需安裝 Oracle 客戶端),可以成功,特記錄,以防遺忘,兼供各位參考,
以下是詳細步驟:
a.使用 NuGet 安裝 Oracle.ManagedDataAccess 到專案,
使用 Visual Studio 打開專案,右鍵點擊專案,彈出選單選擇“管理 NuGet 程式包”,搜索并安裝 Oracle.ManagedDataAccess,
此處,我使用的是 Visual Studio Community 2019 , NuGet 搜索后安裝的是 Oracle.ManagedDataAccess 19.10.1 ,
如果彈出視窗,要求接收協議,選擇“是”,
b. 撰寫代碼,連接 Oracle 資料庫,使用 sid, 不使用 tnsname,
示例代碼如下:
1 public void test() 2 { 3 //OK 4 string strConnectBySid = "Data Source =(DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST =" + OracleConnectInfo.strDbIPOrHostName 5 + ")(PORT=" + OracleConnectInfo.iDbPort + "))(CONNECT_DATA=https://www.cnblogs.com/jacklondon/p/(SID =" + OracleConnectInfo.strDbServiceName 6 + "))); User Id = " + OracleConnectInfo.strDbUser + "; Password=" + OracleConnectInfo.strDbPassword + ";"; 7 8 using (OracleConnection conn = new OracleConnection(strConnectBySid)) 9 { 10 conn.Open(); 11 string sql = "select 1 from dual"; 12 //string sql = "select cname from tm_user where id = 21728"; 13 14 using (OracleCommand cmd = new OracleCommand(sql, conn)) 15 { 16 object o = cmd.ExecuteScalar(); 17 System.Console.WriteLine("ExecuteScalar:" + o); 18 } 19 conn.Close(); 20 } 21 }
請注意,如果使用 tnsname, 則需要安裝 oracle 客戶端,而直接使用 sid, 則不需要安裝 oracle 客戶端,
===============歡迎轉載,轉載請注明出處:https://www.cnblogs.com/jacklondon/
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/255410.html
標籤:C#
下一篇:C# 實作語音聊天
