C# 不安装Oracle客户端情况下,如何连接到Oracle数据库
简介:
在我们开发应用场景经常碰到需要连接Oracle数据库,这也是相当常见的一种情况。一般.Net环境连接Oracle数据库,可以通过TNS/SQL.NET 配置文件,而 TNS 必须要 Oracle 客户端。
场景一、很多在使用微软自带的Using System.Data.OracleClient(据说现在已经不维护的)的时候,在没有安装Oracle客户端的服务器上运行,会提示你需要安装Oracle客户端,不过在Oracle 12以后的版本都很少使用这种方法了。
场景二、也有很多人直接调用了Oracle客户端下的Oracle.DataAccess.dll(一般在Oracle安装目录下的product\11.2.0\dbhome_1\ODP.NET\bin\2.x当中)。但是在程序运行时,碰到最多的情况可能就是,Oracle.DataAccess.Client.OracleException报错:提供程序与此版本的 Oracle 客户机不兼容(一般检查下本机的Oracle的Oracle.DataAccess.dll和你引用的Oracle.DataAccess.dll版本是不是一致的,替换相同的版本就能解决此问题)。
下面主要介绍,不需要安装Oracle客户端,通过最新的ODP.Net方式(Oracle.ManagedDataAccess.dll)直接连接Oracle数据库。
Oracle全托管驱动Oracle.ManagedDataAccess
Oracle官网为C#提供了全新的ODP.Net方式的全托管驱动Oracle.ManagedDataAccess,并且还 EF 支持分布式事务,官网下载地址(地址还挺不好找的,下载的时候需要Oracle账户才行,没有的话注册一个也挺快的)—传送门:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html,如图所示:

下载解压找到我们需要的Oracle.ManagedDataAccess.dll,如果你使用EF框架,则选择EF6当中的dll,如图所示:

将Oracle.ManagedDataAccess.dll引用到我们的项目当中,然后检验下链接Oracle是否连接成功。

代码段:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.ManagedDataAccess.Client; namespace ForbiddenTools
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Oracel连接测试";
string connString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = 服务器名称)));User Id=用户名;Password=密码;";
OracleConnection conn = new OracleConnection(connString);
conn.Open();
if (conn.State == ConnectionState.Open)
{
string sql = @"select sysdate from dual";
OracleCommand cmd = new OracleCommand(sql, conn);
Console.WriteLine(cmd.ExecuteScalar());
conn.Close();
}
Console.ReadKey();
}
}
}
PS:如有疑问,请留言,未经允许,不得私自转载,转载请注明出处:http://www.cnblogs.com/xuliangxing/p/8391547.html


C# 不安装Oracle客户端情况下,如何连接到Oracle数据库的更多相关文章
- 不安装Oracle客户端情况下使用PL/SQL 远程连接数据库
附送PL/SQL Developer11中文版下载地址 1.先到Oracle网站下载Instant Client : http://www.oracle.com/technetwork/databas ...
- 本地在不安装Oracle的情况下安装PLSQL客户端
本文解决问题: 通常在本地安装PLSQL后,如果本地没有安装Oracle数据库的话,PLSQL是不能使用的,输入远程数据库登录信息会提示:"Oracle Client没有正确安装&quo ...
- 在本地没有安装Oracle的情况下,使用plsql远程连接数据库
远程连接数据库的方式不止一种.这里主要写在本地没有安装Oracle的情况下,使用plsql可视化工具远程连接数据库的方式. 一.前提 首先你本地得安装有plsql工具.具体的安装步骤就不多说了. 二. ...
- 如何在不装ORACLE的情况下使用PLSQL
原来我电脑装了oracle跟plsql,然后使用plsql的.后来因为某些原因,我重装了系统,把装的软件都格调了,需要重新装.当时在装plsql的时候我就想,我一直都是直接用plsql远程连接的服务器 ...
- 在安装ISE的情况下,充分利用ISE的安装目录,查找资料
2013-06-22 11:03:02 在找资料时,通过官网输入关键字的方法找资料,有事会给出很多版本的链接.或者找不到,下面给出一种简便的方法,可以快速找到想要的资料. 如果要找ISE各个工具如pl ...
- PLSQL Developer在未安装Oracle Client情况下连接Oracle
常用的Oracle开发的工具有SQL Developer和PL/SQL Developer, 用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端 如何达到不 ...
- 不安装Oracle客户端使用PL/SQL连接服务器端Oracle
从10G开始,Oracle 提供了一个较为轻量级的客户包,叫做Instant Client Package. 将它安装好后,就不用再安装庞大的Oracle客户端,可以直接通过使用PL/SQL连接服务器 ...
- 不安装oracle客户端,连接到服务器的oracle (注:针对 odp.net)
前几天在研究怎样不安装oracle客户端去访问oracle,并把里面的数据同步到本地的Sql Server数据库中. 准备工作:首先你得有如下.dll,我这个是针对oracle10g的,如果是更高的版 ...
- linux下python3的安装(已安装python2的情况下)
前段时间想自学一下python,就在虚拟机里已安装python2.7的情况下又安装了最新版python3.6.4.于是问题来了..只要一打开终端就出现一大段错误代码(忘记截图了),当时看到是ros和p ...
随机推荐
- Vue(九)小案例 - 百度搜索列表(跨域)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- pygame-KidsCanCode系列jumpy-part8-记录历史最高分
通常在多玩家的游戏中,每个玩家都会有自己的得分,最高分数会成为该游戏的最佳记录.这一篇,学习下如何记录最高得分:(为了简化代码,本文采用文件方式,仅记录本机得分,明白原理后,可以将得分保存在云端或数据 ...
- 咏南WEB APP开发框架
咏南WEB APP开发框架 咏南WEB桌面框架演示:47.106.93.126:9999 咏南WEB手机框架本地:47.106.93.126:8077 咏南CS框架下载:https://pan.bai ...
- CSS魔法堂:Flex布局
前言 Flex是Flexible Box的缩写,就是「弹性布局」.从2012年已经面世,但由于工作环境的原因一直没有详细了解.最近工作忙到头晕脑胀,是要学点新东西刺激一下大脑,打打鸡血. Flex就 ...
- QIDO-RS - Search
6.7.1 QIDO-RS - Search 6.7.1.1 Request The specific resources to be used for the search actions shal ...
- VMWare 下安装 MSDN版 MS-DOS 6.22
最近有些怀旧,刚从孔夫子旧书网淘回一本<Borland 传奇>,里面讲到了很多DOS时代的经典软件,特别想尝试一下~比如:Turbo Pascal.SideKick.Borland C/C ...
- Win10系统的SurfacePro4如何重装系统-2 重装WIN10系统
把SurfacePro充好电,然后关机,开机按住音量+,然后再按电源键,可以开机并进入BIOS(此前应确保优盘已经装了PE并插入Surface) 然后选择U盘启动为第一个(按住之后把他拖放到第一位 ...
- ionic中android的返回键
ionic中android的返回键 在ionic框架中已经注册了几个返回事件,分别是 view sideMenu modal actionSheet popup loading 他们的优先级分别是 v ...
- SharePoint online 获取文件版本记录
endpoint: _api/web/GetFileByServerRelativeUrl('/allDoc/xxx.pdf')/Versions 问题: 第一次使用,无论在本地还是o365上,都只返 ...
- 小程序入门学习Demo
技术:小程序 概述 适合学习小程序的初级开发人员,入门教程 详细 代码下载:http://www.demodashi.com/demo/14956.html 小程序周边美甲美发预约Demo 代码主 ...