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数据库提供了很大的方便. ...
随机推荐
- 20170501xlVBA销售订单整理一行转多行
Sub NextSeven_CodeFrame() Application.ScreenUpdating = False Application.DisplayAlerts = False Appli ...
- DATEADD 和 CAST 函数
where cast(soh.orderdate as date)=cast(dateadd(day,-1,getdate()) as date) 这一代码在sql 2005 不适用,使用conver ...
- 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”
在用SQLServer2012附加SQLServer2000备份的数据库事,报如下错误: 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf” ...
- SQL TUNING——从近半小时到几十毫秒的一次优化
昨天,一个用户的现场人员打电话紧急求助,说他们的一个系统卡了,半天不出结果,严重的影响了他们的使用,我简单的问了几句:什么时候的事儿?答:就今天下午的事儿.问:数据库软硬件最近动过没?答:没动过.问: ...
- python pipe stdout 实现cat|grep 功能
从hdfs里获取希望的数据: import subprocess for day in range(22, 23): for h in range(17, 24): filename = " ...
- spring boot 学习(六)spring boot 各版本中使用 log4j2 记录日志
spring boot 各版本中使用 log4j2 记录日志 前言 Spring Boot中默认日志工具是 logback,只不过我不太喜欢 logback.为了更好支持 spring boot 框架 ...
- Python笔记初识
Python笔记初识
- vs2012团队连接(Team Foundation Server)怎样从已登录的用户退出
在用visual studio 连接团队项目时,首次输入用户名和密码后,默认保存住凭据了,等以后连接会自动采用首次的凭证. 但是如何采用新的用户重新登录呢 解决方法有两个: 1.删除原有账号登陆的凭证 ...
- 练习vue(class,style属性)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [转载]python的常用代码模板
URL:http://blog.csdn.net/xingjiarong/article/details/50651235