zoukankan      html  css  js  c++  java
  • C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html

    官方下载地址(ODP.net):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html

    首先介绍下开发环境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客户端,如果安装整个数据库也是可以的)

    目前了解C#中连接Oracle数据库的方法有3种,分布是微软的System.Data.OracleClient,Oracle的Oracle.DataAccess.Client和Oracle的Oracle.ManagedDataAccess.dll(最优)

    1.微软的System.Data.OracleClient可以直接引用,但是VS会提示“System.Data.OracleClient.OracleConnection”已过时,这表明微软自己都不建议使用了,所以知道就可以了,不必使用

    2.C#使用Oracle.DataAccess.Client也叫ODP.net,他是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用。由于微软在.net framework4中会将System.Data.OracleClient.dll deprecated,而且就访问效率和速度而言,System.Data.OracleClient.dll与Oracle.DataAccess.dll相比,微软的确实没有oracle提供的类库有优势,所以我放弃了使用多年的System.Data.OracleClient.dll,取而代之的是odp.net。然而odp.net的优点不止这些,还包括:
    1)不在安装客户端也能访问服务器上的oracle(假设Application Server与DB Server 分开)
    2)不需要配置TnsNames.Ora文件

    具体的使用方法请参考这位大侠的  http://blog.csdn.net/rrrrssss00/article/details/7178515/

    还有这位大侠的 http://blog.csdn.net/sumirry/article/details/46746331

    如果项目要从System.Data.OracleClient.OracleConnection转Oracle.DataAccess.Client时,只需要在oracle 安装目录下 找到 Oracle.DataAccess.dll添加引用,后 using Oracle.DataAccess.Client;
    其他的都不用动,即可。
    连接字符串中 如有 用的是 user=xxx 就改成user id=xxx把原来 Using 的System.Data.OracleClient去掉即可。

    3.重点学习最后一种Oracle.ManagedDataAccess.dll,第二种的优点很多,但是也有缺点,就是要区分用区分x86/x64版本。

    下载dll和使用方法参考这位大侠的 https://www.cnblogs.com/zouhao/p/9236947.html

    复制代码
                OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["OracleConnString"].ToString());
                con.Open();
                OracleCommand cmd = new OracleCommand(cmdString, con);
                OracleDataAdapter oda = new OracleDataAdapter();
                oda.SelectCommand = cmd;
                oda.Fill(ds);
                GridView1.DataSource = ds;
                GridView1.DataBind();
    复制代码

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    Connection String Attribute

    默认值

    描述

    Connection Lifetime

    0

    Maximum life time (in seconds) of the connection

    当数据库连接被返回到连接池中时,它的创建时间将与当前时间比较,如果超过了 Connection Lifetime 规定的时间,它将被释放掉。  0 时将被视为最大连接时间。

    Connection Timeout

    15

    Maximum time (in seconds) to wait for a free connection from the pool

    Data Source

    empty string

    Oracle Net Service Name that identifies the database to connect to

    DBA Privilege

    empty string

    Administrative privileges: SYSDBA or SYSOPER

    Decr Pool Size

    1

    Controls the number of connections that are closed when an excessive amount of established connections are unused

    Enlist

    true

    Enables or disables serviced components to automatically enlist in distributed transactions

    当此值为 true 时,池中现存的所有数据库连接将被加入到它的创建线程的 Transaction Context 中。如果不存在这个 Transaction Context 则无任何变化。

    Incr Pool Size

    5

    Controls the number of connections that are established when all the connections in the pool are used

    Max Pool Size

    100

    Maximum number of connections in a  pool

    Min Pool Size

    1

    Minimum number of connections in a pool

    Password

    empty string

    Password for the user specified by User Id

    Persist Security Info

    false

    Enables or disables the retrieval of password in the connection string

    Pooling

    true

    Enables or disables connection pooling

    Proxy User Id

    empty string

    User name of the proxy user

    Proxy Password

    empty string

    Password of the proxy user

    User Id

    empty string

    Oracle user name

     

     

     

    // C#

    ...

    OracleConnection con = new OracleConnection();

    con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;Pooling=true;Enlist=true;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5; Decr Pool Size=2";

    con.Open();

    ...

      

    以下网站提供连接字符串大全: 

    www.ConnectionStrings.com 

  • 相关阅读:
    进程和线程
    vue程序搭建
    EXTJS 不显示窗体 标题框的办法
    asp.net 本地资源连接没反映的解决办法
    IIS支持flv格式流传送的办法(解决flash播放器报200错误)
    response.write不要放到try里去,不然会报一个错误 a instance object什么的
    Webservice 用http get方式无法请求到的解决办法
    转一篇关于RIA的内存泄露的文章
    jquery的选择器$('')在IE6下对JS动态生成(比如ajax生成的)的元素失效的解决办法
    聚类存储过程分析
  • 原文地址:https://www.cnblogs.com/zouhao/p/9000286.html
Copyright © 2011-2022 走看看