.net4.0中使用ODP.net访问Oracle数据库(无需安装oracle客户端部署方法)
1、在没有安装oracle客户端的设备上也能访问服务器上的oracle (通俗的讲就是:开发的应用程序 和 oracle数据库服务器分别在两台电脑上)
2、不需要配置TnsNames.Ora文件
开发环境 :
操作系统:win10
开发工具:VS2010
运行环境:.net 4.0
首先要下载odp.net文件,可以在这个页面下载Oracle Data Access Components (ODAC) Downloads (http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html),
我下载的是ODAC 11.2 Release 4 and Oracle Developer Tools for Visual Studio (11.2.0.3.0)这个版本。
ODTwithODAC112030.zip 221 MB (231,828,322 bytes)
下载完成之后先用winrar解压,不用安装。
然后,在ODTwithODAC112030文件夹找
第一个路径: ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\ 找到 filegroup2.jar 文件,
用winrar解压 filegroup2.jar ,
解压后 ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\filegroup2\odp.net\bin\4\
目录中找到 Oracle.DataAccess.dll
第二个路径:ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\ 找到 filegroup16.jar 文件,
用winrar解压 filegroup16.jar ,
解压后 ODTwithODAC112030\stage\Components\oracle.ntoledb.odp_net_2\11.2.0.3.0\1\DataFiles\filegroup16\bin\
目录中找到 OraOps11w.dll
第三个路径:ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles 找到 filegroup2.jar 文件,
用winrar解压 filegroup2.jar,
解压后 ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles\filegroup2\bin
目录中找到 oci.dll.dbl 和 ociw32.dll.dbl ,去掉 .dbl 文件就变成了oci.dll 和 ociw32.dll
第四个路径:ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles 找到 filegroup3.jar 文件,
用winrar解压 filegroup3.jar,
解压后 ODTwithODAC112030\stage\Components\oracle.rdbms.rsf.ic\11.2.0.3.0\1\DataFiles\filegroup3\bin
目录中找到 oraocci11.dll
第五个路径:ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles 找到 filegroup4.jar 文件,
用winrar解压 filegroup4.jar,
解压后 ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles\filegroup4\instantclient\light
目录中找到 oraociicus11.dll
第六个路径:ODTwithODAC112030\stage\Components\oracle.ldap.rsf.ic\11.2.0.3.0\1\DataFiles 找到 filegroup1.jar 文件,
用winrar解压 filegroup1.jar,
解压后 ODTwithODAC112030\stage\Components\oracle.ldap.rsf.ic\11.2.0.3.0\1\DataFiles\filegroup1\bin
目录中找到 orannzsbb11.dll
如何报下面的错误:
ORA-12737: Instant Client Light: unsupported server character set %s
是因为缺少 oraociei11.dll 这个动态链接库。
第七个路径:ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles 找到 filegroup3.jar 文件,
用winrar解压 filegroup3.jar,
解压后 ODTwithODAC112030\stage\Components\oracle.rdbms.ic\11.2.0.3.0\1\DataFiles\filegroup3\instantclient
目录中找到 oraociei11.dll
最后把这些动态链接库
Oracle.DataAccess.dll
OraOps11w.dll oci.dll ociw32.dll oraocci11.dll oraociicus11.dll orannzsbb11.dll
oraociei11.dll
复制到项目中,C/S架构的要与exe一个文件夹,B/S架构的有专门的bin目录。
我将这些动态链接库放在压缩包里供大家下载
因为 oraociei11.dll 文件100多兆,无法上传。
用VS2010(C#)新建一个项目(选择.net framework 4.0) ,添加引用Oracle.DataAccess.dll
编码如下:
using Oracle.DataAccess.Client;
string connstring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.123)(PORT=1521))" +
"(CONNECT_DATA=(SID=xe)));User Id=system;Password=test963;";
using (OracleConnection conn = new OracleConnection(connstring))
{
conn.Open();
string sql = "select * from cd_subject";
using (OracleCommand comm = new OracleCommand(sql, conn))
{
using (OracleDataReader rdr = comm.ExecuteReader())
{
DataTable dt = new DataTable();
dt.Load(rdr);
dataGridView1.DataSource = dt;
dataGridView1.Refresh();
}
}
conn.Close();
}
实测环境
操作系统:winxp
运行环境:.net4.0
测试了简单的SQL语句
结果:可以正常访问服务器上的oracle数据库。
参考:http://www.cnblogs.com/netuml/archive/2013/02/28/2936642.html
.net4.0中使用ODP.net访问Oracle数据库(无需安装oracle客户端部署方法)的更多相关文章
- .net远程连接oracle数据库不用安装oracle客户端
asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...
- .net远程连接oracle数据库不用安装oracle客户端的方法
.net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...
- C# 连接Oracle 11g 无需安装Oracle客户端
1.首先到Oracle网站上下载ODAC 下载地址1:http://download.csdn.net/detail/easyboot/9456476 下载地址2:http://www.oracle. ...
- SqlDbx连接oracle(无需安装Oracle客户端)
下载地址:https://download.csdn.net/download/xzplinke/10428957 解压SqlDbx.zip,将SqlDbx放到C:盘根目录(C:\SqlDbx 路径是 ...
- <pages validateRequest="false"/>在.net4.0中无效的问题
再web.config中设置<pages validateRequest="false"/>在.net4.0中无效的问题 解决方案: <system.web> ...
- [置顶] c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date'
c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date' ...
- 关于.net4.0中的Action委托
在使用委托时,若封装的方法无返回值,并且参数在0-7个,可考虑使用.Net4.0中的Action委托,建议使用系统自带的,减少自定义 public delegate void Action<in ...
- IBatisNet+Oracle.ManagedDataAccess打造无需安装oracle客户端和ODP即可连接oracle数据库
库环境: Oracle.ManagedDataAccess 版本:4.122.1.0 IBatisNet 版本:1.6.2 其实很简单的,只需在驱动配置那里添加上Oracle.ManagedData ...
- Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。
题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...
随机推荐
- Function.caller
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/caller 非标准 ...
- CSS超出2行省略号
overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; line- ...
- vc6.0 通过ADO(udl)连接sql 2008
转载声明:本文转自http://blog.sina.com.cn/s/blog_7328b9dd0100pkbw.html茗之的博客 首先声明:本文是针对vc与sql菜鸟的,高人请让路. 本文讲解 ...
- sc7731 Android 5.1 LCD驱动简明笔记之一
基于展讯sc7731 - Android 5.1 代码分析浏览.将屏蔽细节,把握整体,并且不涉及其他设备和LCD的交互. 以下对sc7731 lcd大体流程进行简要说明. 第一,lcd 的两个阶段 1 ...
- Android自定义图形,图形的拼接、叠加、相容
直接上Xfermode子类: AvoidXfermode 指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图). PixelXorXfermode 当覆盖已有的颜色时,应用一 ...
- CodeForces 173A Rock-Paper-Scissors 数学
Rock-Paper-Scissors 题目连接: http://codeforces.com/problemset/problem/173/A Description Nikephoros and ...
- VK Cup 2012 Qualification Round 1 C. Cd and pwd commands 模拟
C. Cd and pwd commands Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...
- 如何进行js动态生成option?如何实现二级连动?
何为二级连动? 首先要明白什么是二级连动!顾名思义,就是一个动,另外一个也跟着一起动 看下面的例子: 这里有一个“市级”的选择列表框,还有一个“县级”的选择列表框,如果“市级”的选择列表框中的值发现变 ...
- SSIS 64位环境访问Oracle11g
SSIS 为了要能够在64位的机器上面让SSIS存取Oracle,当然需要安装64位的Oracle Provider,但是遇到最大的问题在于SSIS在执行的时候分成两种组件,分别是DTExec.exe ...
- 如何避免MVC Model First 设计时添加的DataAnnotation被覆盖掉
结合多方资料做一系统,发现Code First中所有代码要自己写,无法自动生成(暂时没有找到方法,有知道的大能,给指点一下,好像在NuGet中有一个插件可以直接从数据库中生成Code First所需类 ...