.NET使用ODP.NET连接Oracle数据库笔记

1. 开发端安装ODP.NET.下载地址:http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html

注:建议下载和服务器版本一致的odp,不然会有很多奇怪的问题.至于使用32位还是64位,我试过没有差异(服务器64位,开发机32位).

2. vs开一个console程序,引用Oracle.DataAccess.dll,至于从gac还是本地路径引用都可以.测试代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using Oracle.DataAccess.Client; //odp类必须
using Oracle.DataAccess.Types;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string conString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))" +
              "(CONNECT_DATA=(SID=testdb)));User Id=dba;Password=dbb;";
            //写连接串以上2方法连接都可以,也可以放到Web.Config中。 
            OracleConnection con=new OracleConnection(conString);
            OracleCommand command =new OracleCommand();
            command.Connection = con;
            command.CommandText = "select * from T_users";//改成自己的表
            con.Open();
            OracleDataReader dr = command.ExecuteReader(); // C# 
            while (dr.Read())
            {
                Console.WriteLine(dr[0].ToString());
            }
            
            //Console.WriteLine(returnResult);


            Console.Read();
        }
    }
}

如果能正常访问数据,就证明ok了.

注:

1. 如果报错

未处理的异常: System.IO.FileNotFoundException: 未能加载文件或程序集“Oracle.Dat

aAccess, Version=2.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342”或
它的某一个依赖项。系统找不到指定的文件。

解决:说明gac或者Oracle.DataAccess引用路径异常,建议把文件copy到发布的bin目录.

2. 如果报错

未处理的异常: System.TypeInitializationException: “Oracle.DataAccess.Client.Or
acleConnection”的类型初始值设定项引发异常。 ---> Oracle.DataAccess.Client.Oracl
eException The provider is not compatible with the version of Oracle client
在 Oracle.DataAccess.Client.OracleInit.Initialize()
在 Oracle.DataAccess.Client.OracleConnection..cctor()
--- 内部异常堆栈跟踪的结尾 ---
在 Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
在 ConsoleApplication2.Program.Main(String[] args)

解决:这说明oracle依赖的dll环境加载不正确,开发端可能安装的odp版本和服务器不一致.或者客户端缺少oracle运行的动态库.开发端建议重新安装一致版本或者重新进行oracle.dataaccess的gac配置.

3. 客户端

客户端如果不想安装odp.net,则必须在成功连接服务器的开发端的odp安装路径中复制出以下文件放到发布应用程序运行目录.

至于oracle.dataaccess.dll是否注册到客户端的gac,我测试过,都可以.

文件清单:

oci.dll

ociw32.dll

orannzsbb11.dll

oraocci11.dll

oraociei11.dll

bin\OraOps11w.dll

odp.net\x\Oracle.DataAccess.dll(x表示省略路径)

 

enjoy!

转载于:https://www.cnblogs.com/yandy/p/3844303.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值