• C#连接Oracle数据库的方法(System.Data.OracleClient、Oracle.DataAccess.Client也叫ODP.net、Oracle.ManagedDataAccess.dll)


    官方下载地址(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 

  • 相关阅读:
    DFS and BFS
    278. First Bad Version
    67. Add Binary
    Luogu3426 [POI2005]SZA-Template (KMP)(未完成)
    Luogu2375 [NOI2014]动物园 (KMP)
    Luogu3435 [POI2006]OKR-Periods of Words (KMP)
    Luogu4391 [BOI2009]Radio Transmission 无线传输 (KMP)
    Luogu2922 [USACO08DEC]秘密消息Secret Message (Trie树)
    Luogu2580 于是他错误的点名开始了 (Trie树)
    Luogu3375 【模板】KMP字符串匹配
  • 原文地址:https://www.cnblogs.com/turnip/p/10508673.html
Copyright © 2020-2023  润新知