C# 连接Oracle(利用ODP.net,不安装oracle客户端)

摘自:http://www.cnblogs.com/wang_yb/archive/2011/07/11/2103368.html


为了方便部署连接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



安装oraclclient运行时环境

ASP.NET连接Oracle问题1:System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater

  原因:NTFS权限问题,在ORACLE9I时总是遇到

  解决方法:

  1、以管理员的用户登录;

  2、找到ORACLE_HOME文件夹(我的是C:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
或者
\app\Administrator\product\11.1.0 文件夹下 client_2 
点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中增加的修改权限,"应用";再去掉刚增加的权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把
权限的更改应用于该文件夹;




  3、重新启动计算机,让权限设置生效(请注意,这一步很重要);

  4、登录后运行asp.net应用,正常取得Oracle数据库的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值