对于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. codeforces 1041d// Glider// Codeforces Round #509(Div. 2)

    题意:给出,n和飞行员高度h,n是区间数.在区间里飞行员高度不变,其它地方每秒高度-1,x坐标+1.问在高度变为0以前,x坐标最多加多少? 用数组gap记录本区间右端到下一个区间左端的距离.用sum记 ...

  2. php--------php库生成二维码和有logo的二维码

    php生成二维码和带有logo的二维码,上一篇博客讲的是js实现二维码:php--------使用js生成二维码. 今天写的这个小案例是使用php库生成二维码: 效果图:        使用了 php ...

  3. python-day4笔记

    1.文件后缀名对python运行没关系 2.Python解释器执行python程序的过程:python3 C:\test.py 1)启动python解释器(内存中) 2)将C:\test.py内容从硬 ...

  4. hdu2110(多重背包/母函数)

    http://acm.hdu.edu.cn/showproblem.php?pid=2110 就是个多重背包,有坑点-.-.注意答案模10000中间结果有可能会爆所以计算时就要取模: 由于必须能均分三 ...

  5. .net 外部CSS文件不起作用总结

    外部css文件样式全部不起作用 asp.net 页面引用路径的问题 缺少必须属性<link rel="stylesheet" type="text/css" ...

  6. 76. Minimum Window Substring *HARD*

    Given a string S and a string T, find the minimum window in S which will contain all the characters ...

  7. 体验异步的终极解决方案-ES7的Async/Await

    阅读本文前,期待您对promise和ES6(ECMA2015)有所了解,会更容易理解.本文以体验为主,不会深入说明,结尾有详细的文章引用. 第一个例子 Async/Await应该是目前最简单的异步方案 ...

  8. bzoj1002

    题解: f[i]=(f[i-1]*3+f[i-2]); 高精度计算 代码: #include<bits/stdc++.h> using namespace std; struct big ...

  9. sql server 的变量

    对于占用关键字等不符合规则的命名,可使用中括号[ ]括起来. 局部变量: 局部变量名必须以@开头,作用范围仅为程序内部. 常用用途: 1.作为计数器计算循环执行的次数或控制循环执行的次数 2.保存数据 ...

  10. Ant里面神奇的fork

    最近两天一直在处理ant运行java程序的一个问题,用IDE直接运行类里面的main函数一切正常,但用ant跑该函数就报错误,错误的原因是运行ant任务时调用的是AntClasloader,而IDE里 ...