转自:https://blog.csdn.net/hndaihui/article/details/79524072

首先介绍下开发环境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客户端,如果安装整个数据库也是可以的)

目前了解C#中连接Oracle数据库的方法有3种,分布是微软的System.Data.OracleClient,Oracle的Oracle.DataAccess.Client和Oracle的Oracle.ManagedDataAccess.dll(最优)

1.微软的System.Data.OracleClient可以直接引用,但是VS会提示“System.Data.OracleClient.OracleConnection”已过时,这表明微软自己都不建议使用了,所以知道就可以了,不必使用

2.C#使用Oracle.DataAccess.Client也叫ODP.net,他是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用。由于微软在.net framework4中会将System.Data.OracleClient.dll deprecated,而且就访问效率和速度而言,System.Data.OracleClient.dll与Oracle.DataAccess.dll相比,微软的确实没有oracle提供的类库有优势,所以我放弃了使用多年的System.Data.OracleClient.dll,取而代之的是odp.net。然而odp.net的优点不止这些,还包括:
1)不在安装客户端也能访问服务器上的oracle(假设Application Server与DB Server 分开)
2)不需要配置TnsNames.Ora文件

具体的使用方法请参考这位大侠的  http://blog.csdn.net/rrrrssss00/article/details/7178515/

还有这位大侠的 http://blog.csdn.net/sumirry/article/details/46746331

如果项目要从System.Data.OracleClient.OracleConnection转Oracle.DataAccess.Client时,只需要在oracle 安装目录下 找到 Oracle.DataAccess.dll添加引用,后 using Oracle.DataAccess.Client;
其他的都不用动,即可。
连接字符串中 如有 用的是 user=xxx 就改成user id=xxx把原来 Using 的System.Data.OracleClient去掉即可。

3.重点学习最后一种Oracle.ManagedDataAccess.dll,第二种的优点很多,但是也有缺点,就是要区分用区分x86/x64版本。

下载dll和使用方法参考这位大侠的  http://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html

转载于:https://www.cnblogs.com/Olimpic2008/p/11125841.html

C# .NET访问Oracle的三种方法(转)相关推荐

  1. OpenCV访问像素的三种方法

    三种方法分别问: 指针访问:void colorReduce_ptr(cv::Mat &inputImage, cv::Mat &outputImage, int div); 迭代器访 ...

  2. NAS开通外网访问功能的三种方法

    1.从运营商申请固定IP,直接与NAS映射 因为疫情影响,回不了市区家里,这个方法还没测试过. 2.购买云服务器,赠送公网IP,通过frp实现内网穿透 先从阿里云购买了一周(最短一周,3月14日到期) ...

  3. OpenCV(图像处理)—访问像素的三种方法

    方法一:用指针访问像素 1 #include <opencv2/opencv.hpp> 2 #include <opencv2/core/core.hpp> 3 #includ ...

  4. html输入密码访问指定页面,三种方法使HTML单页面输入密码才能访问

    方法一 function password() { var testV = 1; var pass1 = prompt('请输入密码',''); while (testV < 3) { if ( ...

  5. 线程间操作无效:从不是创建控件的线程访问它的三种方法

    访问 Windows 窗体控件本质上不是线程安全的.如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态.还可能出现其他与线程相关的 bug,包括争用情况和死锁.确保以线程安 ...

  6. PHP伪造referer访问地址的三种方法

    CURL方式: [php] view plaincopy print? $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, "http://w ...

  7. 如何判断网站是不是ipad访问的?三种方法来判断

    如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad.iPad 使用的是 Safari Mobile 浏览器,他的的 User Agent 是: Mozilla/ ...

  8. oracle创建数据库的三种方法

    新建Oracle数据库三种方法: 1.通过运行Oracle Database Configuration Assistant创建配置或删除数据库(也可在命令行下输入dbca): 2.用命令行的方式建立 ...

  9. OpenCV精进之路(零):访问图像中像素的三种方法

    访问像素的三种方法 指针访问:最快 迭代器iterator:较慢,非常安全,指针访问可能出现越界问题 动态地址计算:更慢,通过at()实现.适用于访问具体某个第i行,j列的像素,而不适用遍历像素 这里 ...

最新文章

  1. Linux 之 Kickstart
  2. 虚拟机Virtualbox中的Ubuntu系统,安装增强功能时报错:未能加载虚拟光驱VBoxsGuestAdditions.iso到虚拟电脑
  3. 实验5 matlab程序设计2,实验5 Matlab程序设计2
  4. 面向对象(封装对象private关键字)
  5. mysql主键外键_MySQL主键和外键使用及说明
  6. linux 自学系列:文件内容查找命令grep
  7. 郭明錤:新款iPhone S或为“有史以来最便宜的5G iPhone”
  8. FileSystemObject 对象
  9. 拓端tecdat|r语言ggplot2误差棒图快速指南
  10. 使用phpstudy中的apache进行虚拟主机的配置(自定义网站名进行访问,如http://wei.com)
  11. Linux下安装gcc报错的情况解决方案
  12. windows 豆沙绿参数
  13. UI设计师常用工具软件都有哪些,UI设计工具盘点
  14. 如何写好工作日报,周报,月报?
  15. IM开发基础知识补课(二):如何设计大量图片文件的服务端存储架构?
  16. 前端制作PUBG瞄准镜!
  17. 关于做深度学习,如何配置本地工作站(CPU、GPU等一系列问题扫盲和推荐)
  18. NVT | 67x USB MSDC设备分析
  19. 男人和女人是怎样吹牛的
  20. 跨服功能和跨服比赛测试正常

热门文章

  1. pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
  2. 从2012年到现在深度学习领域标志成果
  3. 卷积池化计算 深度学习
  4. LeetCode简单题之将找到的值乘以2
  5. 5G和AI机器人平台
  6. 摄像头与毫米波雷达(Radar)融合
  7. 2021年大数据Kafka(七):Kafka的分片和副本机制
  8. ❤️手撕这十道HiveSQL题还不能吊打面试官,却能保你不被吊打❤️【推荐收藏】
  9. 2021年大数据Hadoop(二十二):MapReduce的自定义分组
  10. Laravel7使用Auth进行用户认证