C#利用ODP.net連接Oracle數(shù)據(jù)庫(kù)的操作方法
更新時(shí)間:2012年11月15日 11:40:35 作者:
本文將介紹C#利用ODP.net連接Oracle數(shù)據(jù)庫(kù)的操作方法,需要的朋友可以參考下
本文介紹了C#連接Oracle數(shù)據(jù)庫(kù)的過(guò)程。通過(guò)instant client和ODP.net中的Oracle.DataAccess.dll,我們就可以方便的部署.net應(yīng)用程序或者站點(diǎn),而不需要安裝Oracle客戶端。接下來(lái)我們就介紹這一過(guò)程。
1. ODAC的安裝
在oracle的官方網(wǎng)站上下載與你安裝的oracle對(duì)應(yīng)版本的ODAC。
下載地址:ODAC Download
下載好后解壓安裝,安裝時(shí)不用安裝全部的組件。主要安裝以下組件:
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)聽(tīng)文件tnsnames.ora的配置
在目錄%ORACLE_HOME%下新建文件tnsnames.ora,內(nèi)容如下:
數(shù)據(jù)庫(kù)SID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle主機(jī)名或者IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 數(shù)據(jù)庫(kù)SID)
)
)
4. plsqldev
這樣配置好后,plsqldev就可以連接上oracle數(shù)據(jù)庫(kù)了。
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ù)庫(kù)連接的配置。
<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í)行,如果沒(méi)有錯(cuò)誤,就可以成功地連接數(shù)據(jù)庫(kù)了。
1. ODAC的安裝
在oracle的官方網(wǎng)站上下載與你安裝的oracle對(duì)應(yīng)版本的ODAC。
下載地址:ODAC Download
下載好后解壓安裝,安裝時(shí)不用安裝全部的組件。主要安裝以下組件:
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)聽(tīng)文件tnsnames.ora的配置
在目錄%ORACLE_HOME%下新建文件tnsnames.ora,內(nèi)容如下:
復(fù)制代碼 代碼如下:
數(shù)據(jù)庫(kù)SID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle主機(jī)名或者IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 數(shù)據(jù)庫(kù)SID)
)
)
4. plsqldev
這樣配置好后,plsqldev就可以連接上oracle數(shù)據(jù)庫(kù)了。
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ù)庫(kù)連接的配置。
復(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í)行,如果沒(méi)有錯(cuò)誤,就可以成功地連接數(shù)據(jù)庫(kù)了。
您可能感興趣的文章:
- .net如何優(yōu)雅的使用EFCore實(shí)例詳解
- ASP.NET?Core?5.0中的Host.CreateDefaultBuilder執(zhí)行過(guò)程解析
- .Net Core中使用EFCore生成反向工程
- ASP.NET Core使用EF保存數(shù)據(jù)、級(jí)聯(lián)刪除和事務(wù)使用
- ASP.NET?Core使用EF查詢數(shù)據(jù)
- ASP.NET?Core使用EF創(chuàng)建模型(索引、備用鍵、繼承、支持字段)
- ASP.NET?Core使用EF?SQLite對(duì)數(shù)據(jù)庫(kù)增刪改查
- .net core實(shí)用技巧——將EF Core生成的SQL語(yǔ)句顯示在控制臺(tái)中
- 詳解.Net Core 權(quán)限驗(yàn)證與授權(quán)(AuthorizeFilter、ActionFilterAttribute)
- 在.NET Core類庫(kù)中使用EF Core遷移數(shù)據(jù)庫(kù)到SQL Server的方法
- .net連接oracle的3種實(shí)現(xiàn)方法
- .Net使用EF Core框架連接Oracle的方法
相關(guān)文章
oracle分區(qū)表之hash分區(qū)表的使用及擴(kuò)展
Hash分區(qū)是Oracle實(shí)現(xiàn)表分區(qū)的三種基本分區(qū)方式之一。對(duì)于那些無(wú)法有效劃分分區(qū)范圍的大表,或者出于某些特殊考慮的設(shè)計(jì),需要使用Hash分區(qū),下面介紹使用方法2014-01-01
Oracle數(shù)據(jù)庫(kù)concat()函數(shù)用法及使用簡(jiǎn)化的‘||’進(jìn)行拼接
CONCAT()函數(shù)在Oracle中可以用于將兩個(gè)字符串連接在一起,那么CONCAT()函數(shù)的語(yǔ)法及使用方法是什么呢,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)concat()函數(shù)用法及使用簡(jiǎn)化的‘||’進(jìn)行拼接的相關(guān)資料,需要的朋友可以參考下2024-03-03
Oracle數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的調(diào)試過(guò)程
oracle如果存儲(chǔ)過(guò)程比較復(fù)雜,我們要定位到錯(cuò)誤就比較困難,那么我們就可以用存儲(chǔ)過(guò)程的調(diào)試功能,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程調(diào)試的相關(guān)資料,需要的朋友可以參考下2022-07-07
oracle臨時(shí)表空間的作用與創(chuàng)建及相關(guān)操作詳解
Oracle可能會(huì)需要使用到一些臨時(shí)存儲(chǔ)空間,用于臨時(shí)保存解析過(guò)的查詢語(yǔ)句以及在排序過(guò)程中產(chǎn)生的臨時(shí)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于oracle臨時(shí)表空間的作用與創(chuàng)建及相關(guān)操作的相關(guān)資料,需要的朋友可以參考下2022-07-07
詳解Oracle數(shù)據(jù)庫(kù)各類控制語(yǔ)句的使用
本文我們主要介紹了Oracle數(shù)據(jù)庫(kù)中各種控制語(yǔ)句的使用,包括邏輯控制語(yǔ)句、Case when的使用、While的使用以及For的使用等,希望本次的介紹能夠?qū)δ兴斋@!2015-09-09
Oracle數(shù)據(jù)庫(kù)字符集及修改方式詳解
Oracle語(yǔ)言環(huán)境的描述包括三部分:language、territory、characterset(語(yǔ)言、地域、字符集),這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)字符集概述及修改方式,需要的朋友可以參考下2023-08-08

