配置的应用程序为x64的应用程序,以下解决方案是为了连接远程服务器上的oracle 11g 的解决方案。

  • 下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
  • 下载版本:64-bit ODAC 11.2 Release 3 (11.2.0.2.1) Xcopy for Windows x64
  • 下载后文件名:ODAC112021Xcopy_x64.zip

解压后将看到如下目录:

  • asp.net               -- asp.net 2.0需要的放在bin下的文件。
  • asp.net4  -- asp.net 2.0需要的放在bin下的文件。
  • instantclient_11_2 -- 公共的dll,需要的放在bin下的文件。
  • odp.net4  -- winform2.0 需要的放在bin下的文件。
  • odp.net20  -- winform2.0 需要的放在bin下的文件。
  • oledb   -- 公共的dll,需要的放在bin下的文件。
  • oramts   -- 在开发时,这个文件,我没有用到
  • xxx.bat(一些安装的命令文件,这些文件不需要执行)

我在开发时,

  • 1,)没有直接执行instantclient_11_2下的任何文件,而是把该目录下的所有文件及文件夹拷贝到bin目录下(或者不拷贝应用程序的bin下,把该目录拷贝到某一个路径下,之后在环境path变量中追加该地址到path中)。
  • 2,)之后包oledb下的所有.dll拷贝到 bin目录下;
  • 3,)odp.net4下载所有.dll拷贝到bin目录下。

到此我们需要的所有oracle的dll已经拷贝完成,添加Oracle.DataAccess.dll引用到我们工程中;

在ODAC112021Xcopy_x64\odp.net4\odp.net\PublisherPolicy\4下包含两个文件:
Policy.4.112.Oracle.DataAccess.config
Policy.4.112.Oracle.DataAccess.dll
我已经把他们拷贝到bin目录了,之后打开Policy.4.112.Oracle.DataAccess.config,将:
  <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
            <bindingRedirect oldVersion="4.112.0.0-4.112.2.0" newVersion="4.112.2.0"/>
        </dependentAssembly>
      </assemblyBinding>
   </runtime>
添加到工程的config中。

在工程中引入命名空间(而不需要引入System.Data.OracleClient,而是Oracle.DataAccess.dll或者Oracle.ManagedDataAccess.dll):

using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

测试代码:

 string connecitonString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.21.3.34)(PORT=1521))(CONNECT_DATA=(SID=db001)));User Id=username;Password=password;";

             DataTable datatable = new DataTable();

             using (OracleConnection connection = new OracleConnection(connecitonString))
{
using (OracleCommand command = new OracleCommand())
{
connection.Open(); command.Connection = connection;
command.CommandText = "select * from table_001 where rownum<10";
command.CommandType = CommandType.Text; OracleDataAdapter dataAdapter = new OracleDataAdapter(command); dataAdapter.Fill(datatable);
}
}

折腾了,n久才把程序调通。

注意:发布时需要包含bin下的所有外部oracle组件.dll相关文件。

oracle组建:ODAC112021Xcopy_x64,在开发机上,不用安装oracle的客户端等开发的更多相关文章

  1. .net远程连接oracle数据库不用安装oracle客户端

    asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...

  2. .net远程连接oracle数据库不用安装oracle客户端的方法

    .net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...

  3. 转:不用安装Oracle客户端,远程连接Oracle数据库

    转摘自: http://blog.sina.com.cn/s/blog_90b20fe70101az2z.html Oracle数据库安装过程较为繁琐,而且卸载更加麻烦,如果卸载不干净,下次安装Ora ...

  4. ORA-12538;ORA-12154;使用PL/SQL dve无法连接远程服务器上的oracle数据库,同时本机上也安装了一个oracle数据库

    问题描述:本人使用PL/SQL dve连接远程服务器上的oracle数据库,一直是没有问题的.我想提高下自己在数据库方面的能力就在自己的笔记本上安装了一个oracle数据库实例,安装并配置好之后,使用 ...

  5. 【Oracle学习笔记-1】Win7下安装Oracle 10g

    源程序获取 从Oracle的官网上下载Oracle 10g: 10203_vista_w2k8_x86_production_db.zip:==>服务器(必须) 10203_vista_w2k8 ...

  6. 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.1 安装Oracle数据库软件和创建数据库概览)

    当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 2.1 安装Oracle数据库软件和 ...

  7. [转]不用安装Oracle Client如何使用PLSQL Developer

    本文转自:http://www.cnblogs.com/sleepywang/archive/2009/10/13/1582654.html 1. 下载oracle的客户端程序包(30M) 只需要在O ...

  8. C#中不用安装Oracle客户端连接Oracle数据库(转)

    原文地址:http://www.cnblogs.com/jiangguang/archive/2013/02/19/2916882.html 0.首先,从Oracle网站上下载对应版本的Oracle ...

  9. 不用安装Oracle客户端

    1 pl/sql developer 1.1 下载解压instantclient-basic-nt-12.1.0.2.0. 1.2 在其目录下新建Network/ADMIN/tnsnames.ora文 ...

随机推荐

  1. HTML: 字符實體

    在HTML編寫中,有些字符不適合直接在代碼中寫出,比如>,<, (space空格),",',&等等,這時我們按照一定的格式將它們寫出,比如(大於)> 符號,我們用 ...

  2. OpenGL完全教程 第一章 初始化OpenGL

    第一章 初始化OpenGL 无论是什么东西,要使用它,就必须对它进行初始化.如果你之前使用过GDI,你应该也多多少少了解到GDI在绘制图形之前要为之创建渲染环境.OpenGL也一样.本章给出的代码,大 ...

  3. OneDrive无法正常登录

    可能是DNS被污染 手动设置DNS 134.170.108.26 onedrive.live.com134.170.108.152 skyapi.onedrive.live.com

  4. svn update 失败 且 clean up失败解决方法

    当出现这种情况时,大多数是因为svn的数据库还有队列没处理完.而我们要做到仅仅是把队列清除即刻. 具体做法是: 1.下载sqlite3.exe下载地址:sqlite官网http://www.sqlit ...

  5. Arrays.toString Arrays.asList

    import java.util.Arrays; public class TestCalc{ public static void main(String[] args) { ,,,,,,,}; / ...

  6. 使用storyboard创建带有navigation的界面的简单方法

    步骤1:正常创建1个新项目 步骤2:选中默认创建的viewcontroller 步骤3:选择最上面工具栏的editor->embedin->navigation controller. 同 ...

  7. Region的预分区

    1.预分区的方式 共有四种方式 2.帮助信息 help 'create' 3.第一种方式 4.在页面上查看效果(端口号:60010) 5.第二种方式 )创建文件,并在文件中书写分区的值 )创建表 6. ...

  8. xftp的使用

    1.xftp 一个基于 MS windows 平台的功能强大的SFTP.FTP 文件传输软件 2.下载安装 *3.在linux上安装服务 sudo yum install vsftp

  9. C# 字符串的截取和替换

    1.取字符串的前n个字符 (1)string str1=str.Substring(0,n); (2)string str1=str.Remove(i,str.Length-n); 2.去掉字符串的前 ...

  10. 将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型

    问题描述: java里面时间类型转换成json数据就成这样了: "createTime":{"date":30,"day":3," ...