C#利用ODP.net連接Oracle數(shù)據(jù)庫的操作方法
更新時間:2012年11月15日 11:40:35 作者:
本文將介紹C#利用ODP.net連接Oracle數(shù)據(jù)庫的操作方法,需要的朋友可以參考下
本文介紹了C#連接Oracle數(shù)據(jù)庫的過程。通過instant client和ODP.net中的Oracle.DataAccess.dll,我們就可以方便的部署.net應(yīng)用程序或者站點,而不需要安裝Oracle客戶端。接下來我們就介紹這一過程。
1. ODAC的安裝
在oracle的官方網(wǎng)站上下載與你安裝的oracle對應(yīng)版本的ODAC。
下載地址:ODAC Download
下載好后解壓安裝,安裝時不用安裝全部的組件。主要安裝以下組件:
Oracle Instant Client
Oracle Data Provider For .net2.0
Oracle rovider For Asp .net
2. 環(huán)境變量的設(shè)置
設(shè)置Windows的環(huán)境變量:
ORACLE_HOME :ODAC的安裝目錄(類似 ~\app\Administrator\product\11.1.0\client_1);
LD_LIBRARY_PATH :%ORACLE_HOME%;
TNS_ADMIN : %ORACLE_HOME%;
在PATH的最前面追加:%ORACLE_HOME%;
3. 監(jiān)聽文件tnsnames.ora的配置
在目錄%ORACLE_HOME%下新建文件tnsnames.ora,內(nèi)容如下:
數(shù)據(jù)庫SID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle主機名或者IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 數(shù)據(jù)庫SID)
)
)
4. plsqldev
這樣配置好后,plsqldev就可以連接上oracle數(shù)據(jù)庫了。
5. C#連接Oracle
C#連接oracle的示例代碼如下:
OracleConnection conn =
new OracleConnection();
try
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["oradb"].ConnectionString;
conn.Open();
string sql = " select id,content from test"; // C#
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader(); // C#
List<string> contents = newList<string>();
while(dr.Read())
{
contents.Add(dr["content"].ToString());
}
listBox1.ItemsSource = contents;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Clone();
}
在程序app.config或者web.config中追加數(shù)據(jù)庫連接的配置。
<connectionStrings >
<add name="oradb"connectionString="Data Source=(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=****)));
User Id=***;Password=***;"/>
</connectionStrings>
按照上述的步驟執(zhí)行,如果沒有錯誤,就可以成功地連接數(shù)據(jù)庫了。
1. ODAC的安裝
在oracle的官方網(wǎng)站上下載與你安裝的oracle對應(yīng)版本的ODAC。
下載地址:ODAC Download
下載好后解壓安裝,安裝時不用安裝全部的組件。主要安裝以下組件:
Oracle Instant Client
Oracle Data Provider For .net2.0
Oracle rovider For Asp .net
2. 環(huán)境變量的設(shè)置
設(shè)置Windows的環(huán)境變量:
ORACLE_HOME :ODAC的安裝目錄(類似 ~\app\Administrator\product\11.1.0\client_1);
LD_LIBRARY_PATH :%ORACLE_HOME%;
TNS_ADMIN : %ORACLE_HOME%;
在PATH的最前面追加:%ORACLE_HOME%;
3. 監(jiān)聽文件tnsnames.ora的配置
在目錄%ORACLE_HOME%下新建文件tnsnames.ora,內(nèi)容如下:
復(fù)制代碼 代碼如下:
數(shù)據(jù)庫SID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle主機名或者IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 數(shù)據(jù)庫SID)
)
)
4. plsqldev
這樣配置好后,plsqldev就可以連接上oracle數(shù)據(jù)庫了。
5. C#連接Oracle
C#連接oracle的示例代碼如下:
復(fù)制代碼 代碼如下:
OracleConnection conn =
new OracleConnection();
try
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["oradb"].ConnectionString;
conn.Open();
string sql = " select id,content from test"; // C#
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader(); // C#
List<string> contents = newList<string>();
while(dr.Read())
{
contents.Add(dr["content"].ToString());
}
listBox1.ItemsSource = contents;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Clone();
}
在程序app.config或者web.config中追加數(shù)據(jù)庫連接的配置。
復(fù)制代碼 代碼如下:
<connectionStrings >
<add name="oradb"connectionString="Data Source=(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=****)));
User Id=***;Password=***;"/>
</connectionStrings>
按照上述的步驟執(zhí)行,如果沒有錯誤,就可以成功地連接數(shù)據(jù)庫了。
您可能感興趣的文章:
- .net如何優(yōu)雅的使用EFCore實例詳解
- ASP.NET?Core?5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析
- .Net Core中使用EFCore生成反向工程
- ASP.NET Core使用EF保存數(shù)據(jù)、級聯(lián)刪除和事務(wù)使用
- ASP.NET?Core使用EF查詢數(shù)據(jù)
- ASP.NET?Core使用EF創(chuàng)建模型(索引、備用鍵、繼承、支持字段)
- ASP.NET?Core使用EF?SQLite對數(shù)據(jù)庫增刪改查
- .net core實用技巧——將EF Core生成的SQL語句顯示在控制臺中
- 詳解.Net Core 權(quán)限驗證與授權(quán)(AuthorizeFilter、ActionFilterAttribute)
- 在.NET Core類庫中使用EF Core遷移數(shù)據(jù)庫到SQL Server的方法
- .net連接oracle的3種實現(xiàn)方法
- .Net使用EF Core框架連接Oracle的方法
相關(guān)文章
oracle執(zhí)行update語句時卡住問題分析及解決辦法
這篇文章主要介紹了oracle執(zhí)行update語句時卡住問題分析及解決辦法,涉及記錄鎖等相關(guān)知識,具有一定參考價值,需要的朋友可以了解。2017-10-10Oracle數(shù)據(jù)庫INSERT?INTO的幾種用法舉例
INSERT INTO語句可以有多種寫法,具體取決于插入的數(shù)據(jù)來源和目標,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫INSERT?INTO的幾種用法舉例,需要的朋友可以參考下2024-02-02Oracle數(shù)據(jù)庫中如何給表賦予權(quán)限
賦權(quán)是指將特定的權(quán)限授予用戶或用戶組,以便他們可以執(zhí)行特定的操作,如查詢、插入、更新和刪除數(shù)據(jù),創(chuàng)建和修改表結(jié)構(gòu),以及執(zhí)行其他管理任務(wù),這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫中如何給表賦予權(quán)限的相關(guān)資料,需要的朋友可以參考下2024-01-01Oracle數(shù)據(jù)庫的啟動與關(guān)閉方法
這篇文章主要介紹了Oracle數(shù)據(jù)庫的啟動與關(guān)閉方法,需要的朋友可以參考下2013-07-07Oracle服務(wù)端1521端口無法telnet,服務(wù)名未開啟監(jiān)聽的解決
這篇文章主要介紹了Oracle服務(wù)端1521端口無法telnet,服務(wù)名未開啟監(jiān)聽的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Oracle 手動創(chuàng)建數(shù)據(jù)庫步驟詳解
本文給大家介紹oracle手動創(chuàng)建數(shù)據(jù)庫步驟,需要的朋友可以參考下2015-10-10oracle數(shù)據(jù)庫遷移到MySQL的方法總結(jié)
本文主要總結(jié)了oracle數(shù)據(jù)庫遷移到MySQL的方法,方法包括手動方式導(dǎo)入導(dǎo)出、使用工具Navicat 進行導(dǎo)入、使用工具DBMover 的OracleToMySQL 進行導(dǎo)入和使用工具intelligent-converters 的 oracle-to-mysql 進行導(dǎo)入,需要的朋友可以參考下。2017-03-03