C#利用ODP.net连接Oracle数据库的操作方法

时间:2021-08-08 04:50:45

本文介绍了C#连接Oracle数据库的过程。通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点,而不需要安装Oracle客户端。接下来我们就介绍这一过程。 

1. ODAC的安装 
在oracle的官方网站上下载与你安装的oracle对应版本的ODAC。 
下载地址:ODAC Download 
下载好后解压安装,安装时不用安装全部的组件。主要安装以下组件: 
Oracle Instant Client 
Oracle Data Provider For .net2.0 
Oracle rovider For Asp .net 

2. 环境变量的设置 
设置Windows的环境变量: 
ORACLE_HOME :ODAC的安装目录(类似 ~\app\Administrator\product\11.1.0\client_1); 
LD_LIBRARY_PATH :%ORACLE_HOME%; 
TNS_ADMIN : %ORACLE_HOME%; 
在PATH的最前面追加:%ORACLE_HOME%; 

3. 监听文件tnsnames.ora的配置 
在目录%ORACLE_HOME%下新建文件tnsnames.ora,内容如下: 

复制代码代码如下:


数据库SID = 
(DESCRIPTION = 
(ADDRESS_LIST = 
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle主机名或者IP)(PORT = 1521)) 

(CONNECT_DATA = 
(SERVICE_NAME = 数据库SID) 


4. plsqldev 
这样配置好后,plsqldev就可以连接上oracle数据库了。 

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中追加数据库连接的配置。 

复制代码代码如下:


<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> 


按照上述的步骤执行,如果没有错误,就可以成功地连接数据库了。