C# 连接Oracle(利用ODP.net,不安装oracle客户端)
Posted on 2011-07-11 20:31 wang_yb
为了方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即instant client。
通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点。
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,内容如下:
|
1
2
3
4
5
6
7
8
9
|
数据库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的示例代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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 = new List<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中追加数据库连接的配置
|
1
2
3
4
5
6
|
<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> |
还可以参考官方的文档,不过是英文的,呵呵!
Build a .NET Application on the Oracle Database with Microsoft Visual Studio 2010
浙公网安备 33010602011771号