C# .NET访问Oracle的三种方法(转)
转自: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的三种方法(转)相关推荐
- OpenCV访问像素的三种方法
三种方法分别问: 指针访问:void colorReduce_ptr(cv::Mat &inputImage, cv::Mat &outputImage, int div); 迭代器访 ...
- NAS开通外网访问功能的三种方法
1.从运营商申请固定IP,直接与NAS映射 因为疫情影响,回不了市区家里,这个方法还没测试过. 2.购买云服务器,赠送公网IP,通过frp实现内网穿透 先从阿里云购买了一周(最短一周,3月14日到期) ...
- OpenCV(图像处理)—访问像素的三种方法
方法一:用指针访问像素 1 #include <opencv2/opencv.hpp> 2 #include <opencv2/core/core.hpp> 3 #includ ...
- html输入密码访问指定页面,三种方法使HTML单页面输入密码才能访问
方法一 function password() { var testV = 1; var pass1 = prompt('请输入密码',''); while (testV < 3) { if ( ...
- 线程间操作无效:从不是创建控件的线程访问它的三种方法
访问 Windows 窗体控件本质上不是线程安全的.如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态.还可能出现其他与线程相关的 bug,包括争用情况和死锁.确保以线程安 ...
- PHP伪造referer访问地址的三种方法
CURL方式: [php] view plaincopy print? $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, "http://w ...
- 如何判断网站是不是ipad访问的?三种方法来判断
如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad.iPad 使用的是 Safari Mobile 浏览器,他的的 User Agent 是: Mozilla/ ...
- oracle创建数据库的三种方法
新建Oracle数据库三种方法: 1.通过运行Oracle Database Configuration Assistant创建配置或删除数据库(也可在命令行下输入dbca): 2.用命令行的方式建立 ...
- OpenCV精进之路(零):访问图像中像素的三种方法
访问像素的三种方法 指针访问:最快 迭代器iterator:较慢,非常安全,指针访问可能出现越界问题 动态地址计算:更慢,通过at()实现.适用于访问具体某个第i行,j列的像素,而不适用遍历像素 这里 ...
最新文章
- Linux 之 Kickstart
- 虚拟机Virtualbox中的Ubuntu系统,安装增强功能时报错:未能加载虚拟光驱VBoxsGuestAdditions.iso到虚拟电脑
- 实验5 matlab程序设计2,实验5 Matlab程序设计2
- 面向对象(封装对象private关键字)
- mysql主键外键_MySQL主键和外键使用及说明
- linux 自学系列:文件内容查找命令grep
- 郭明錤:新款iPhone S或为“有史以来最便宜的5G iPhone”
- FileSystemObject 对象
- 拓端tecdat|r语言ggplot2误差棒图快速指南
- 使用phpstudy中的apache进行虚拟主机的配置(自定义网站名进行访问,如http://wei.com)
- Linux下安装gcc报错的情况解决方案
- windows 豆沙绿参数
- UI设计师常用工具软件都有哪些,UI设计工具盘点
- 如何写好工作日报,周报,月报?
- IM开发基础知识补课(二):如何设计大量图片文件的服务端存储架构?
- 前端制作PUBG瞄准镜!
- 关于做深度学习,如何配置本地工作站(CPU、GPU等一系列问题扫盲和推荐)
- NVT | 67x USB MSDC设备分析
- 男人和女人是怎样吹牛的
- 跨服功能和跨服比赛测试正常
热门文章
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
- 从2012年到现在深度学习领域标志成果
- 卷积池化计算 深度学习
- LeetCode简单题之将找到的值乘以2
- 5G和AI机器人平台
- 摄像头与毫米波雷达(Radar)融合
- 2021年大数据Kafka(七):Kafka的分片和副本机制
- ❤️手撕这十道HiveSQL题还不能吊打面试官,却能保你不被吊打❤️【推荐收藏】
- 2021年大数据Hadoop(二十二):MapReduce的自定义分组
- Laravel7使用Auth进行用户认证