• C# 连接 Oracle 的几种方式


    一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora)
    1. 添加命名空间System.Data.OracleClient引用
    2. using System.Data.OracleClient;
    3. 
    string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;";
    OracleConnection conn = new OracleConnection(connString);
    try
    {
        conn.Open();
        MessageBox.Show(conn.State.ToString());
    }
    catch (Exception ex)
    {
        ShowErrorMessage(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }
    
    二:通过System.Data.OracleClient(需要安装Oracle客户端不需配置tnsnames.ora)
    1. 添加命名空间System.Data.OracleClient引用
    2. using System.Data.OracleClient;
    3.
    string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
    OracleConnection conn = new OracleConnection(connString);
    try
    {
        conn.Open();
        MessageBox.Show(conn.State.ToString());
    }
    catch (Exception ex)
    {
        ShowErrorMessage(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }
    
    三:通过System.Data.OleDb和Oracle公司的驱动
    1. 添加命名空间System.Data.OracleClient引用
    2. using System.Data.OleDb;
    3.
    string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
    OleDbConnection conn = new OleDbConnection(connString);
    try
    {
        conn.Open();
        MessageBox.Show(conn.State.ToString());
    }
    catch (Exception ex)
    {
        ShowErrorMessage(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }
    
    四:通过System.Data.OleDb和微软公司的Oracle驱动
    1. 添加命名空间System.Data.OracleClient引用
    2. using System.Data.OleDb;
    3.
    string connString = "Provider=MSDAORA.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
    OleDbConnection cnn = new OleDbConnection(connString);
    try
    {
        conn.Open();
        MessageBox.Show(conn.State.ToString());
    }
    catch (Exception ex)
    {
        ShowErrorMessage(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }
    
    备注:
    a.XP操作系统已经安装了微软公司的Oracle驱动C:Program FilesCommon FilesSystemOle DBmsdaora.dll
    b.该驱动需要Oracle客户端的三个文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可
    
    五:使用ODP连接
    1. 下载安装ODP.NET(http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html)
    2. 安装完全成后会产生一序列文件。
    3. 找到这个安装目录,打开文件夹%ORACLE_HOME%NetworkAdmin在这个下面建立一个tnsnames.ora的文件,其内容可以参考其下的Sample目录下面的配置
    Oracle.RACE =
    (DESCRIPTION=
       (ADDRESS_LIST=
         (ADDRESS=
           (PROTOCOL=TCP)
           (HOST=127.0.0.1)
           (PORT=1521)
         )
       )
       (CONNECT_DATA=
         (SID=RACE)
         (SERVER=DEDICATED)
       )
    )
    Oracle.RACE为连接字符串名称,可以随便取。等号后面的字符串可以在Enterprise Manager Console工具中连接数据库后的TNS描述符中拷过来
    4. 引用Oracle.DataAccess命名空间
    5. using Oracle.DataAccess.Client;
    6. 示例代码:
    string connString = "DATA SOURCE=Oracle.RACE;PERSIST SECURITY INFO=True;USER ID=IFSAPP;password=IFSAPP";
    OracleConnection conn = new OracleConnection(connString);
    try
    {
        conn.Open();
        OracleCommand cmd = new OracleCommand(cmdText,conn);
        OracleDataReader reader = cmd.ExecuteReader();
        this.DataGridView1.DataSource = reader;
        this.DataGridView1.DataBind();
    }
    catch (Exception ex)
    {
        ShowErrorMessage(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }
    
    六:使用第三方驱动
    第三方驱动有 Devart,下载驱动 http://www.devart.com/dotconnect/oracle/,但是是商业版,需要购买许可或破解
    连接格式 User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
    1. 引用Devart.Data.Oracle命名空间
    2. using Devart.Data.Oracle;
    3.
    OracleConnection conn = new OracleConnection();
    conn.ConnectionString = "";
    conn.Unicode = true;
    conn.UserId = "IFSAPP";
    conn.Password = "IFSAPP";
    conn.Port = 1521;
    conn.Server = "127.0.0.1";
    conn.Sid = "RACE";
    try
    {
        conn.Open();
        //execute queries, etc
    }
    catch (Exception ex)
    {
        ShowErrorMessage(ex.Message.ToString());
    }
    finally
    {
        conn.Close();
    }
    

      

  • 相关阅读:
    Java基础——clone()方法浅析
    Unity shader error: “Too many texture interpolators would be used for ForwardBase pass”
    ar 解压一个.a文件报错: xxx.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
    How to set up "lldb_codesign" certificate!
    Unity-iPhone has Conflicting Provisioning Settings
    ETC1/DXT1 compressed textures are not supported when publishing to iPhone
    Xcode 提交APP时遇到 “has one iOS Distribution certificate but its private key is not installed”
    XCode iOS之应用程序标题本地化
    苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置
    Unity 4.7 导出工程在XCode10.1上编译报错
  • 原文地址:https://www.cnblogs.com/zemax/p/5673524.html
Copyright © 2020-2023  润新知