对于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 数据

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

C# 使用oledb 方式连接本地或者远程oracel 数据库的方式的更多相关文章

  1. 使用git连接本地和远程github

    使用git连接本地和远程github 网上很多github的流程比较乱,自己尝试整理了一下,主要是步骤较为清晰,如果有不清楚的可详细进行搜索对比 1. 申请和设置github https://gith ...

  2. 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务

    转载:https://blog.csdn.net/sunshinegyan/article/details/80017012 前提:本地已经安装好了MongoDB服务 1启动MongoDB: 方法1: ...

  3. python 在window 系统 连接并操作远程 oracle 数据库

    1,python 连接 oracle 需要 oracle 自身的客户端  instantclient,可以去官网下载自己需要的版本, https://www.oracle.com/technetwor ...

  4. Unity3D连接本地或局域网MySQL数据库

    准备工作: 1.打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库, ...

  5. (转载)Unity3D连接本地或局域网MySQL数据库

    准备工作: 1.打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库, ...

  6. PL/SQL Developer连接本地64位Oracle数据库

    1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址: ...

  7. Navicat Premium从远程Mysql数据库复制到本地数据库的方法

    之前做在本地测试总是先去现在下一份数据库的sql,然后再在本地建一个相同的,导入sql.然后觉得有点麻烦,现在发现了一个直接远程直接复制一份到本地的方法 工具:Navicat Premium 1.先连 ...

  8. Navicat Premium的数据传输功能----将远程Mysql数据库复制到本地数据库的方法

    1.先连上本地.远程的数据库 2.在本地建一个和你要复制的远程数据库的名称一样的数据库 3.数据转移.工具-->数据传输-->填写源数据库和目标数据库-->下一步-->开始 注 ...

  9. 使用C#的两种方式OracleClient组件和OleDB组件连接ORACLE数据库

    一.使用OracleClient组件连接Oracle .Net框架的System.Data.OracleClient.dll组件(ADO.Net组件),为连接和使用Oracle数据库提供了很大的方便. ...

随机推荐

  1. priority_queue与bfs不得不说的古寺

    前几天写到bfs,看到之前写的,突然感觉不对,后来发现自己把点权值默认当成了边权值,导致一直走不出来: 点权值嘛,就是经过这个点时,要付出这么多的代价,边权值则是经过边时付出,二者有区别滴: 边权值求 ...

  2. UVA-1579 Matryoshka (区间DP)

    题目大意:n个俄罗斯套娃,都有相应的编号,每次可将两个相邻的套娃组合成一组,每次合成只能小的放到大的里面,并且是逐层嵌套.问将这n个套娃分成若干个组,并且每组都是编号从1开始的连续序列,最少需要几步. ...

  3. 第5章——使用 Razor(MVC框架视图引擎)

    Razor 是MVC框架视图引擎的名称. 本章提供 Razor 语法的快速教程,以使你能够识别 Razor 表达式. 本章不打算提供 Razor 的完整参考,而将其视为一个语法速成教程.在本书的后续内 ...

  4. jsonp 使用选择器

    使用选择器语法来查找和操作元素 使用类似于css和jquery的语法来查找和操作元素 可以使用Element.select(String selector) 和 Elements.select(Str ...

  5. .net面试题精选

    1.面向对象的三个特征?面向对象的五个基本设计原则? 2.接口与抽象类的区别? 3.谈谈设计模式? 4.线程与进程的区别?开发多线程程序应该考虑哪些问题? 5.简述 .NET中的Task? 6.简述. ...

  6. RM报表,点击保存,为何每次都显示 另存为的对话框?

    function TRMDesignerForm.FileSave: Boolean; var lSaved: Boolean; lFileName: string; begin Result := ...

  7. (C/C++学习笔记) 十. 函数

    十. 函数 ● 基本概念 函数 函数定义 function definition: return_type function_name ( parameter list ) { Body of fun ...

  8. Python3 集合(set)(十五)

    集合(set)是一个无序不重复元素的序列. 它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 set和dict类似,也是一组key的集合, ...

  9. ThinkPad 复刻计划 ThinkPad Time Machine

    在快节奏的高科技市场中,针对性的进化 ThinkPad 的设计几乎是闻所未闻的.在汽车行业,保时捷无疑干的不错,但我不认为有任何其他的电脑公司可以顶住压力,坚持自己的初心这么久.没有任何一个竞争对手可 ...

  10. nginx服务相关操作

    安装目录 和大多软件一样一般安装在 /usr/local/ 目录下 /usr/local/ 命令man Usage: nginx [-?hvVt] [-s signal] [-c filename] ...