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

来源:互联网 发布:开一家淘宝店的成本 编辑:程序博客网 时间:2024/05/16 15:59

摘自: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 =
    newOracleConnection();
try
{
    conn.ConnectionString = ConfigurationManager.ConnectionStrings["oradb"].ConnectionString;
    conn.Open();
    stringsql = " select id,content from test";// C#
    OracleCommand cmd = newOracleCommand(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中追加数据库连接的配置

1
2
3
4
5
6
<connectionStrings>
  <addname="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数据库的数据。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 麻雀从巢里掉下来怎么办 小鱼生了鱼蛋怎么办 吃了没熟透的鱼怎么办 吃了变质的虾怎么办 吃了不新鲜的肉怎么办 吃不新鲜的虾怎么办 鸡胸肉不新鲜了怎么办 吃了不新鲜的鱼怎么办 生的猪肉有点臭怎么办? 猪肉馅不新鲜了怎么办 买的肉有点臭了怎么办 炸的东西不脆了怎么办 油炸东西回软了怎么办 吃石斑鱼蛋吐了怎么办 家里的烟筒堵了怎么办 脖子上长鸡皮肤怎么办 铁板烤蔬菜粘锅怎么办 残余尿量300ml怎么办 肌肉拉伤怎么办恢复快小腿 睡觉把背扭了怎么办 后背一侧扭筋了怎么办 背部的筋扭到了怎么办 跳绳跳得膝盖疼怎么办 跑步小腿变粗了怎么办 一蹲下膝盖就响怎么办 做深蹲时膝盖总是吱吱响怎么办 爬山爬的膝盖疼怎么办 膝盖一吹风就疼怎么办 走路太多膝盖腿疼怎么办 膝盖一着凉就痛怎么办 月子里脚受凉了怎么办 膝关节受凉少量积液发胀怎么办 刮痧后吹空调了怎么办 200斤胖子膝盖痛怎么办 风扇吹的腿疼怎么办 膝盖受凉但不疼怎么办 刮痧后洗了澡怎么办 刮痧后喝了啤酒怎么办 艾灸后吃水果了怎么办 刮痧后能洗澡了怎么办 膝盖筋扭了肿了怎么办