C# 连接Oracle ,免安装客户端
在.NET平台下开发Oracle应用的小伙伴们肯定都知道一方面做Oracle开发和实施相比SqlServer要安装Oracle客户端(XCopy、自己提取相关文件也有一定复杂性),另一方面相比JAVA平台不如JDBC方便快捷,特别是一些刚接触Oracle的小伙伴,面临配置tns.ora、OraHome等等多少有些畏难情绪。
初始庐山
现在,这一切都即将成为过去啦。继早些时候Oracle官方推出的ODP.NET Managed的Beta版之后,最近的版本已经跟随12c一起发布了,可以 DLL http://pan.baidu.com/s/1boDID4N 下载。对应的粗看一下,下载了64bit的版本,下载完成后文件不多。

牛刀小试
VS新建一个项目,引用Oracle.ManagedDataAccess.dll,开始随意码几行烂熟的入门级代码…,可以看到,正如Orale自己描述的,跟以前的API差别很小,所不同的就是命名空间换成了using Oracle.ManagedDataAccess.Client;
OracleConnection con = new OracleConnection();
con.ConnectionString ="user id=scott;password=tiger;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))";
con.Open();
OracleCommand cmd = new OracleCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select * from gy_yonghuxx";
cmd.Connection = con;
OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
da.Dispose();
cmd.Dispose();
con.Dispose();
Entity Framework重构
对于已经开始或准备使用Entity Framework的项目(目前版本还不支持Code First),如果熟悉ADO.NET替换起来其实也很简单,共有三点需要注意
1、配置文件里的连接字符串中provider=Oracle.DataAccess.Client;替换为provider=Oracle.ManagedDataAccess.Client;provider
2、对应实体文件edmx中的Provider="Oracle.DataAccess.Client"也替换为Provider="Oracle.ManagedDataAccess.Client"
3、如果对数据类型映射做过配置(Oracle默认的类型映射有点坑爹),需要将下图红线下面的加上去
一探究竟
性能测试我想正式版发布前Oracle官方肯定做过的,自己做测试对比毕竟不够专业,但粗略看下内部实现多少能看出端倪的,如果看过以前Oracle驱动的dll(Mircrosoft、Oracle、Devert提供的dll)肯定知道以前都是依赖于oci.dll这个接口,调用的最终实现是通过P\Invoke。下图是顺着OracleConnect.Open最后跟踪到的OracleCommunication的类,在此已经出现了soket、socketStream等对象,可见这次的托管版本托管的还是比较彻底的,个人觉得在性能上应该会比P\Invoke来的高效。

C# 连接Oracle ,免安装客户端的更多相关文章
- oracle免安装客户端设置
对oracle不是很熟悉,就是使用层面的,开发时往往需要连接oracle,又不想单独安装,一般都用个免安装的客户端罢了,再次记录一下自用 1.下载oracle免安装的客户端 下载地址:http://w ...
- unidac连接ORACLE免装客户端驱动
当你选择Oracle作数据库服务器时,客户端一般需要装一个肥硕的200M左右客户端,而且还要做连接配置,尤其是C/S模式,客户端多的时候非常不便.当然,网上也有一个10M左右的Oracle精简客户 ...
- Oracle免安装绿色版-PLSQL连接报12154
在环境变量添加 TNS_ADMIN 值是你的免安装客户端中sqlnet.ora tnsnames.ora 所在的目录 参考地址:https://blog.csdn.net/feng_na/art ...
- C# 通过Devart连接Oracle(不需要客户端)
16年一月底回了四川,接下来两年就准备在四川工作了.哈哈,虽然收入比沿海城市少了很多,但离老家近些感觉还是很不错的哈,好了,废话不多说,直接上干货. 最近的项目需要用到C#连接Oracle,以前要么是 ...
- plsql免安装客户端的配置
不安装oracle,在安装了plsql之后,需要连接数据库,连接数据库需要在tns中tnsnames.ora中配置 首先需要两个文件: network instantclient-basic-win3 ...
- C# 连接DB2字符串 Oracle免安装客户端连接字符串
以下是DB2连接数据库 1)使用IBM.Data.DB2链接DB2数据库 2)必须安装DB2客户端,IBM.Data.DB2在安装的BIN里可以找到 3)注意一下DB2客户端版本问题,我的就是WIN7 ...
- oracle使用PLSQL免安装客户端
2. 下载Oracle Instant Client (32-bit) 只需要下载instantclient-basic-nt-11.2.0.3.0.zip就可以了,其它的都是一些根据不同需要扩展的包 ...
- Oracle无安装客户端安装方法
一. 1)下载Oracle客户端:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.htm ...
- PL/SQL Developer安装详解(32位客户端免安装版)
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用.PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/S ...
随机推荐
- Daily Scrum Meeting ——FourthDay
一.Daily Scrum Meeting照片 橙汁去北京参加 ICPC比赛了,差不多15号回来 二.Burndown Chart 终于不是一条直线了..
- Spring--通过注解来配置bean【转】
Spring通过注解配置bean 基于注解配置bean 基于注解来配置bean的属性在classpath中扫描组件 组件扫描(component scanning):Spring能够从classpat ...
- hdu 5677 ztr loves substring 多重背包
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...
- 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
马三在开发过程中一直用的都是UE4.9版本(很久没有更新了.),因为功能都够用,所以也懒得去更新.这不最近UE4 发布了最新的4.14版本,本来想尝个鲜,试试新版的UE引擎怎么样,结果这一安装上就一直 ...
- BZOJ4712 : 洪水
首先不难列出DP方程: $dp[x]=\min(w[x],h[x])$ $h[x]=\sum dp[son]$ 当$w[x]$增加时,显然$dp[x]$不会减少,那么我们求出$dp[x]$的增量$de ...
- dbflow 批量 增删查改
@ModelContainer @Table(database = DemoDatabase.class) class Person extends BaseModel implements Seri ...
- Useful links
Better JavaScript with ES6 Pt.IPopular Features pt.II A Deep Dive into Classes pt.III Cool Collectio ...
- [BZOJ3874][AHOI2014] 宅男计划
Description 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的.比如JYY如果今天点了一份保质期为1天的食 ...
- iOS文档注释
Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法. ...
- STM32之GPIO操作
啊哈.没办法.外国人的芯片就喜欢用英文来命名,所以中文的:通用输入/输出 就用GPIO来代替..谁叫哥们都不是外国人呢.好啦.胡扯了一下,借用唐伯虎点秋香的话:小小书童,可笑可笑... 知道了GPI ...