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是否连接成功。

  代码段:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Data;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 using Oracle.ManagedDataAccess.Client;
 8
 9 namespace ForbiddenTools
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             Console.Title = "Oracel连接测试";
16             string connString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器IP地址)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = 服务器名称)));User Id=用户名;Password=密码;";
17             OracleConnection conn = new OracleConnection(connString);
18             conn.Open();
19             if (conn.State == ConnectionState.Open)
20             {
21                 string sql = @"select sysdate from dual";
22                 OracleCommand cmd = new OracleCommand(sql, conn);
23                 Console.WriteLine(cmd.ExecuteScalar());
24                 conn.Close();
25             }
26             Console.ReadKey();
27         }
28     }
29 }

PS:如有疑问,请留言,未经允许,不得私自转载,转载请注明出处:http://www.cnblogs.com/xuliangxing/p/8391547.html

原文地址:https://www.cnblogs.com/xuliangxing/p/8391547.html

时间: 2024-10-07 10:10:06

C# 不安装Oracle客户端情况下,如何连接到Oracle数据库的相关文章

Oracle客户端+PLSQL Developer实现远程登录Oracle数据库

Oracle数据库功能强大.性能卓越,在造就这些优点的同时,也导致Oracle占内存比较多.针对这个问题,我们如何做到取其精华去其糟粕呢? 解决方案:我们可以在局域网内的服务器上安装庞大的Oracle数据库,在开发人员的PC机上安装Oracle客户端,通过Oracle客户端远程登录Oracle数据库. 操作步骤: 1.我们可以从Oracle官网下载Oracle客户端软件,也可以从百度网盘下载,网盘推荐下载地址:http://pan.baidu.com/s/1kTyZdsz,下载完成后安装: 2.

windows 7 本机已安装mysql5的情况下安装XAMPP

这篇其实是编程无关的技术贴. 近期想接触学习一下PHP,手里的电脑是windows7系统的笔记本,懒得为了这点需要去装linux或者虚拟机搞火到不行的LAMP,找到了XAMPP,XAMPP是一个把Apache网页服务器与PHP.Perl及MySQL集合在一起的安装包,允许用户可以在自己的电脑上轻易的建立网页服务器. 于是问题来了,之前搞JAVA EE时电脑上装了mysql5.1,但是XAMPP中也安装了mysql,版本是5.6,怎么保证在XAMPP的mysql使用正常的情况下,原先的JAVA E

在注册表中无Python3.5安装路径的情况下安装pywin32-

当安装pywin32出现Python Version 3.5 required which was not found in the registry的时候表面注册表中没有Python3.5的安装路径.  我出现这种情况是因为我直接用的Anaconda所以注册表没有注册  解决办法:  1. 先在注册表中写入Python3.5的安装路径.我在网上找到了注册表注册的代码贴出来供大家使用. import sys from winreg import * # tweak as necessary ve

在不安装mysql-connector-net的情况下使用FluentData框架

最近在开发项目中使用了FluentData框架,通过使用这个框架减少了很多开发的工作量,FluentData是一个轻量级的框架操作起来的自由度很大也少了很多负责的配置.但是在开发的时候发现一个问题就是当计算机中没有安装mysql-connector-net驱动的时候,FluentData无法创建连接,由于我开发的是winform项目不能让每个客户端都装mysql-connector-net,所以对FluentData的源码进行了重新编辑,重新编辑的dll只能够支持mysql数据库连接.项目源码在

在macOS上不安装JDK的情况下安装Netbeans

标题有些绕,解释起来要从Java在桌面环境上的悲催现状开始. 现在几乎所有的网站都不用Java Applet,用Java编写的桌面应用几乎都是IDE.用Java编写的IDE们为了安装方便,几乎都内嵌了JRE.既然全都自带了JRE,Applet又没用,那还独立安装JRE干什么?那个安装的JRE还自动运行,动不动就要更新. 但是macOS上的Netbeans是个例外,Windows上的Netbeans已经不需要先安装JRE了. macOS已经事实上移除了Java,PhpStorm.Andriod S

iOS 手机没有安装支付宝的情况下,不调支付宝网页的解决的方法

NSArray *array = [[UIApplication sharedApplication] windows]; UIWindow* win=[array objectAtIndex:0]; [win setHidden:NO]; 在调用支付宝payOrder 之前,写上上面三行代码就可以,可是写这又一个坏处.就是会把viewcontroller的全部逻辑都走一遍的,另一个方法.就是找到info.plistMain storyboard file base name删除就能够了.

本地主机不安装oracle客户端--访问远程oracle数据库

在不安装oracle客户端情况下用sqlplus连接数据库: 1.去官网下载 http://www.oracle.com/technetwork/topics/winx64soft-089540.html instantclient-basic-windows.x64-11.2.0.4.0.zipinstantclient-sqlplus-windows.x64-11.2.0.4.0.zipinstantclient-sdk-windows.x64-11.2.0.4.0.zip 2.将上述三个文

《oracle每日一练》免安装Oracle客户端使用PL/SQL

免安装Oracle客户端使用PL/SQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的机器上的其他程序依赖于x64的Oracle的程序,并且它们很有可能根本不是你写的,因此你还不敢随便乱动服务器,但是你可能需要一个PL/SQL用来在相同的环境下执行查询,这个时候你还是需要一个免安装的办法来处理这个问题. 1.下载Oracle Instant Client (32-bit) 因为我的P

oracle 11gR2 client安装(Red Hat Enterprise Linux Server release 5.5 (Tikanga) 安装ORACLE客户端)

安装DBD::ORALCE模块时报错: Running Mkbootstrap for DBD::Oracle () chmod 644 Oracle.bs rm -f blib/arch/auto/DBD/Oracle/Oracle.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=gener