zoukankan      html  css  js  c++  java
  • C# 使用oledb 方式连接本地或者远程oracel 数据库的方式

    对于C# 进行oracle 数据库的开发来说使用oracle 提供的odp.net 方式是比较方便的,同时在性能以及兼容性也是比较好的

    但是,对于不打算使用的,那么该如何使用oledb 进行连接

    连接的方式大家可定都比较了解就是ADO.net 但是最重要的是连接字符串是怎么样的。

    先贴测试代码:

    using (OleDbConnection ole = new OleDbConnection(tep))
                {

                    OleDbCommand cmd = new OleDbCommand("select * from firstclass");
                    cmd.Connection = ole;
                    OleDbDataAdapter dr = new OleDbDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    dr.Fill(ds);
                    dataGridView1.DataSource = ds.Tables[0];
               
                }

    大家可以看到是很简单的,但是上面的tep 即连接字符串改何如写呢。

    一般有一下几种使用dsn 的方式进行配置并写好,但是对于不太了解odbc 配置的人员会比较费时。

    如何使用根据odp.net 的连接方式然后根据vs 的调试提示,获取连接字符串呢?比较简单

    我的获取方式是如下的:

    1. odp.net 的连接名称

      string connstring = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
                    (CONNECT_DATA=(SID=ORCL)));User Id=AppServerUser;Password=1234;";

    以上为odp方式的连接字符串

    2. 我们默认就使用这个进行调试

    这是vs 的提示

     也就是我们没有提供provider 简单我们加上示例的先试试

    3. 加上的测试

         这是加上的连接字符串   string tep = "Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)));User Id=AppServerUser;Password=1234;Provider=SQLOLEDB;";

    4. vs 调试的提示

    比较诡异的是我们使用的是oracle但是提示的是sql server 为什么?

    5. 原因是我们使用的provider 并不是oracle 的

    6.解决方式

     使用oracle的provider 名称

    应该是如下的:

    Provider=OraOLEDB.Oracle;

    7.最终的连接字符串

           string tep = "Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)));User Id=AppServerUser;Password=1234;Provider=OraOLEDB.Oracle;";

    8.使用vs 进行调试

    ok 数据获取成功

    使用这种方式尽管是复杂了,但是这种方式可以获取远程以及本地的oracle 数据库

    大家如果注意的话,这里的连接字符串是根据 tnsnames.ora 文件的格式获取的,实际上 这个文件的配置才是连接oracle 数据

    库最重要的配置。希望对大家有帮助。

  • 相关阅读:
    中文和英文
    文件字符流
    Java IO File
    关于整数拆分的递归法与母函数法
    图论·Dijkstra·HDU2066
    图论·Floyd算法·HDU2544&1874 (伪)2066
    关于 图论·并查集·HDU1232&1856
    Power of Cryptography
    Y2K Accounting Bug
    整数划分
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3715486.html
Copyright © 2011-2022 走看看