C#連接Oracle數(shù)據(jù)庫的多種方法總結(jié)
C# 連接oracle數(shù)據(jù)庫常用的三種方法有三種:
一、Oracle.ManagedDataAccess.dll:Oracle官方提供的oracle數(shù)據(jù)庫訪問組件,不存在其他依賴dll庫,推薦該方法最為重要的是:它不需要安裝oracle客戶端,也不區(qū)分x86位和x64位,直接就能用,連上其他電腦或者服務(wù)端oracle數(shù)據(jù)庫。
二、Oracle.DataAccess.Client.dll:也叫ODP.net,是Oracle提供的數(shù)據(jù)庫訪問dll庫。好處是:不需要安裝客戶端也能訪問服務(wù)器上的oracle,不需要配置tnsNames.Ora文件,但是區(qū)分x86位和x64,也比較麻煩。
三、System.Data.OracleClient.dll:是微軟提供的dll,可以直接引用,但是VS會(huì)提示相關(guān)方法已過時(shí),這個(gè)提示表明微軟建議不使用。該方法需要安裝客戶端才可以用,并且也是區(qū)分區(qū)分x86位和x64,容易出現(xiàn)兼容問題。
綜上所述介紹,我這里推薦第一種方法,下面就以方法一為實(shí)例講解Oracle數(shù)據(jù)庫連接和獲取數(shù)據(jù)。
**************************************************************************************************************
Oracle.ManagedDataAccess.Client.dll
環(huán)境要求 >= .NET Framework4.0;
編譯器使用的是VS2019,在項(xiàng)目中添加Oracle.ManagedDataAccess.Client.dll文件,方法步驟如下:工具 ---- NuGet包管理器 ---- 管理解決方案NuGet程序包 ---- 瀏覽面板 ---- 在搜索欄中輸入Oracle.ManagedDataAccess.Client ---- 搜索 ---- 在顯示庫文件中選擇插件下載即可,搜索顯示結(jié)果圖下圖所示。我這里由于項(xiàng)目.NET 的要求,下載的版本是19.xx.xx版本的。

下載完成插件,VS會(huì)自動(dòng)安裝,然后把庫添加至引用。
************************************************************************************************************** 數(shù)據(jù)庫連接實(shí)現(xiàn),首先添加using Oracle.ManagedDataAccess.Client;命名空間,這里就簡單的實(shí)現(xiàn)數(shù)據(jù)庫連接和獲取數(shù)據(jù),具體代碼如下:
//DataTableName:視圖/表名稱;checkNum:查詢條件
public DataTable GetOracleData(string DataTableName, string checkNum)
{
try
{
string SqlConnStr = "Password=*****;User ID=sys;Connection Lifetime=15;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=102.16.1.113)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));";
OracleConnection conn = new OracleConnection(SqlConnStr);
string sqlStr = string.Format(@"SELECT * from ""{0}"" WHERE ""CheckupCode""='{1}'", DataTableName, checkNum);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = sqlStr;
cmd.CommandType = CommandType.Text;
OracleDataReader dReader = cmd.ExecuteReader();
string dataStr = string.Empty;
DataRow dataRow;
DataTable oracleDataTb = new DataTable();
//設(shè)置Table名和Column名
oracleDataTb.TableName = "AerospaceCenterHis";
for (int j = 0; j < dReader.FieldCount; j++)
{
oracleDataTb.Columns.Add(dReader.GetName(j));//獲取列名
}
//循環(huán)取數(shù)據(jù)集合中的數(shù)據(jù),存到DataTable中
do
{
while (dReader.Read())
{
dataRow = oracleDataTb.NewRow();
for (int j = 0; j < dReader.FieldCount; j++)
{
dataStr = dReader[j].ToString();
dataRow[j] = dataStr;
}
oracleDataTb.Rows.Add(dataRow);
}
} while (dReader.NextResult());
return oracleDataTb;
}
catch (Exception ex)
{
}
}**************************************************************************************************************
這里要注意的是:連接到服務(wù)端上的Oracle數(shù)據(jù)庫時(shí),需要把配置文件修改了,使其能夠進(jìn)行局域網(wǎng)或者遠(yuǎn)程的訪問,還要把端口開放。
在Oracle數(shù)據(jù)庫安裝路徑,當(dāng)然每臺(tái)安裝oracle數(shù)據(jù)庫的地址都是不同的(例如:C:\Oracle11g\product\11.2.0\dbhome_1\network\admin\listener.ora tnsnames.ora)中找到文件listener.ora和tnsnames.ora文件,把兩個(gè)文件中HOST = localhost配置改成HOST=192.186.11.1(服務(wù)器IP地址)重新啟動(dòng)服務(wù)。
到此這篇關(guān)于C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。
**************************************************************************************************************
總結(jié)
到此這篇關(guān)于C#連接Oracle數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)C#連接Oracle數(shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用MiniExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)到Excel/CSV文件
MiniExcel是一個(gè)簡單、高效避免OOM的.NET處理Excel查、寫、填充數(shù)據(jù)的工具,這篇文章主要介紹了C#如何使用MiniExcel實(shí)現(xiàn)導(dǎo)入導(dǎo)出數(shù)據(jù)到Excel/CSV文件,需要的可以參考下2024-02-02
C# SQLite序列操作實(shí)現(xiàn)方法詳解
這篇文章主要介紹了C# SQLite序列操作實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了C#實(shí)現(xiàn)SQLite序列操作的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
詳解.NET 6如何實(shí)現(xiàn)獲取當(dāng)前登錄用戶信息
這篇文章主要介紹了.NET 6在應(yīng)用開發(fā)時(shí)是如何實(shí)現(xiàn)當(dāng)前登陸用戶信息獲取的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-01-01
C#使用CefSharp和網(wǎng)頁進(jìn)行自動(dòng)化交互的示例代碼
CefSharp 是一個(gè)用 C# 編寫的開源庫,它封裝了 Google Chrome 瀏覽器的 Chromium 內(nèi)核,CefSharp 允許開發(fā)者在其應(yīng)用程序中嵌入瀏覽器功能,從而能夠展示網(wǎng)頁內(nèi)容、執(zhí)行JavaScript代碼,本文給大家介紹了C#使用CefSharp和網(wǎng)頁進(jìn)行自動(dòng)化交互,需要的朋友可以參考下2024-07-07
C#實(shí)現(xiàn)將窗體固定在顯示器的左上角且不能移動(dòng)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將窗體固定在顯示器的左上角且不能移動(dòng)的方法,涉及C#窗體固定操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
C#中枚舉類型和radiobox關(guān)聯(lián)操作的方法
這篇文章主要介紹了C#中枚舉類型和radiobox關(guān)聯(lián)操作的方法,實(shí)例分析了C#中枚舉類型及與控件關(guān)聯(lián)操作的相關(guān)技巧,需要的朋友可以參考下2015-04-04
C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法
這篇文章主要介紹了C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法,實(shí)例分析了使用this關(guān)鍵字串聯(lián)構(gòu)造函數(shù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01

