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 数据
库最重要的配置。希望对大家有帮助。
C# 使用oledb 方式连接本地或者远程oracel 数据库的方式的更多相关文章
- 使用git连接本地和远程github
使用git连接本地和远程github 网上很多github的流程比较乱,自己尝试整理了一下,主要是步骤较为清晰,如果有不清楚的可详细进行搜索对比 1. 申请和设置github https://gith ...
- 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
转载:https://blog.csdn.net/sunshinegyan/article/details/80017012 前提:本地已经安装好了MongoDB服务 1启动MongoDB: 方法1: ...
- python 在window 系统 连接并操作远程 oracle 数据库
1,python 连接 oracle 需要 oracle 自身的客户端 instantclient,可以去官网下载自己需要的版本, https://www.oracle.com/technetwor ...
- Unity3D连接本地或局域网MySQL数据库
准备工作: 1.打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库, ...
- (转载)Unity3D连接本地或局域网MySQL数据库
准备工作: 1.打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库, ...
- PL/SQL Developer连接本地64位Oracle数据库
1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址: ...
- Navicat Premium从远程Mysql数据库复制到本地数据库的方法
之前做在本地测试总是先去现在下一份数据库的sql,然后再在本地建一个相同的,导入sql.然后觉得有点麻烦,现在发现了一个直接远程直接复制一份到本地的方法 工具:Navicat Premium 1.先连 ...
- Navicat Premium的数据传输功能----将远程Mysql数据库复制到本地数据库的方法
1.先连上本地.远程的数据库 2.在本地建一个和你要复制的远程数据库的名称一样的数据库 3.数据转移.工具-->数据传输-->填写源数据库和目标数据库-->下一步-->开始 注 ...
- 使用C#的两种方式OracleClient组件和OleDB组件连接ORACLE数据库
一.使用OracleClient组件连接Oracle .Net框架的System.Data.OracleClient.dll组件(ADO.Net组件),为连接和使用Oracle数据库提供了很大的方便. ...
随机推荐
- LeetCode--108--将有序数组转化为二叉搜索树
问题描述: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组: [-10 ...
- Confluence 6 设置公共访问
你可以通过为匿名用户启用 'Use Confluence' 权限来启用匿名用户的站点访问(也称为公共访问) 一个匿名用户的定义为一个不需要登录就可以访问 Confluence 站点.使用 Conflu ...
- Service Account和其secrets 作用和场景,看了不亏。。
Service Account概念的引入是基于这样的使用场景: 运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Service Account它并 ...
- zzuli2130卡时bfs题
https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2130 2130: hipercijevi Time Limit: 1 Sec Memory Li ...
- Microsoft Office相关开发组件
安装office,直接引用COM控件 C#4提供对PIA引用的一种方式:链接(编译器只会将PIA中需要的部分直接嵌入到程序集中),变体(variant)被视为动态类型,以减少强制转换需要的开销: 不安 ...
- 如何搭建.NET Entity Framework分布式应用系统框架
一. 前言 ADO.NET Entity Framework(以下简称EF)是微软推出的一套O/RM框架,如果用过Linq To SQL的人会比较容易理解,因为Linq To ...
- SHA1加密算法 java
//下面四个import放在类名前面 包名后面 //import java.io.UnsupportedEncodingException; //import java.security.Messag ...
- 基于GUI的简单聊天室03
上一版本,客户端关闭后会出现“socket close”异常问题,这个版本用捕捉异常来解决,实际上只是把异常输出的语句改为用户退出之类,并没真正解决 服务器类 package Chat03; /** ...
- Windows折腾之路 兼谈纯净强迫情节
早期新鲜感 想当年,终于有了第一台属于自己自由处置的电脑,1.2Ghz的CPU,256兆的内存.这在CPU刚刚上1G的年代,不说顶级,也算主流.操作系统呢,在别人的帮助下,装上新鲜的XP,各种的华丽, ...
- Android开发入门要点记录:四大组件
cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...