System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容”
.net应用程序通过Oracle.DataAccess.dll访问64位的Oracle服务器,在连接时出现以下异常:“System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容”
oracle 在C# 中调用oracle的数据库时,出现引用库和当前客户端不兼容的问题解决方案
解决方案
1、直接引用 Oracle.ManagedDataAccess.Client.dll动态库即可,
2、引用 Oracle.DataAccess.Client.dll动态库,但根目录下面要有这八个动态库才可以正常使用Oracle 数据库,
(引用 Oracle.DataAccess.Client,但是使用Oracle.DataAccess.dll时,其生成根目录下要有这八个dll(Oracle.ManagedDataAccess这个库相当于后面八个库(oci,ociw32,orannzsbb11,oraocci11,oraociei11,oraons,OraOps11w,OWC11八个动态库))才可以使用11g oracle数据库)
下面是代码:
//using Oracle.DataAccess.Client;
using Oracle.DataAccess.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using System.Data.OracleClient;
//using Oracle.ManagedDataAccess.Client;
namespace MyTest
{
class Program
{
static void Main(string[] args)
{
#region 引用 Oracle.ManagedDataAccess.Client
//OracleConnection con = null;
//try
//{
// //string connString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=taizhou;Password=taizhou";
// //11g ORACLE
// //string connString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.144)(PORT = 1521))(CONNECT_DATA = (SID = orcl))); User Id = evms; Password = evms; Pooling = true; Min Pool Size = 10; Max Pool Size = 100; Connection Lifetime = 120; Connection Timeout = 60; Incr Pool Size = 5; Decr Pool Size = 2;";
// //10g ORACLE
// string connString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.158)(PORT = 1521))(CONNECT_DATA = (SID = ORCL))); User Id = evms; Password = evms; Pooling = true; Min Pool Size = 10; Max Pool Size = 100; Connection Lifetime = 120; Connection Timeout = 60; Incr Pool Size = 5; Decr Pool Size = 2; ";
// //string connString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=130.147.246.144)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ECMS)));Persist Security Info=True;User ID=system;Password=Service01;";
// con = new Oracle.ManagedDataAccess.Client.OracleConnection(connString);
// con.Open();
// ////SELECT* FROM TAIZHOU."UserInfo"
// //string connstring = @"Data Source=TAIZHOU;User ID=taizhou;Password=taizhou;";
// ////实例化OracleConnection对象
// //OracleConnection conn = new OracleConnection(connstring);
// ////打开连接
// //conn.Open();
// StringBuilder stringBuilder = new StringBuilder();
// Oracle.ManagedDataAccess.Client.OracleCommand oracleCommand = new Oracle.ManagedDataAccess.Client.OracleCommand("SELECT * FROM EVMS.USERINFO", con);
// var ss = oracleCommand.ExecuteReader();
// while (ss.Read())
// {
// string name = ss.GetOracleString(3).ToString();
// stringBuilder.AppendLine(name);
// }
// Console.WriteLine(stringBuilder.ToString());
// ss.Close();
// Console.Read();
//}
//catch (Exception ex)
//{
// Console.WriteLine("11111111111111");
//}
//finally
//{
// con.Close();
//}
#endregion
#region 引用 Oracle.DataAccess.Client,但是使用Oracle.DataAccess.dll时,其生成根目录下要有这八个dll(Oracle.ManagedDataAccess这个库相当于后面八个库(oci,ociw32,orannzsbb11,oraocci11,oraociei11,oraons,OraOps11w,OWC11八个动态库))才可以使用11g oracle数据库
OracleConnection con = null;
try
{
//string connString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=taizhou;Password=taizhou";
//string connString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.144)(PORT = 1521))(CONNECT_DATA = (SID = orcl))); User Id = fcms; Password = fcms; Pooling = true; Min Pool Size = 10; Max Pool Size = 100; Connection Lifetime = 120; Connection Timeout = 60; Incr Pool Size = 5; Decr Pool Size = 2;";
string connString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.144)(PORT = 1521))(CONNECT_DATA = (SID = ORCL))); User Id = evms; Password = evms; Pooling = true; Min Pool Size = 10; Max Pool Size = 100; Connection Lifetime = 120; Connection Timeout = 60; Incr Pool Size = 5; Decr Pool Size = 2; ";
//string connString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=130.147.246.144)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ECMS)));Persist Security Info=True;User ID=system;Password=Service01;";
con = new OracleConnection(connString);
con.Open();
////SELECT* FROM TAIZHOU."UserInfo"
//string connstring = @"Data Source=TAIZHOU;User ID=taizhou;Password=taizhou;";
////实例化OracleConnection对象
//OracleConnection conn = new OracleConnection(connstring);
////打开连接
//conn.Open();
StringBuilder stringBuilder = new StringBuilder();
OracleCommand oracleCommand = new OracleCommand("SELECT * FROM evms.USERINFO", con);
var ss = oracleCommand.ExecuteReader();
while (ss.Read())
{
string name = ss.GetOracleString(3).ToString();
stringBuilder.AppendLine(name);
}
Console.WriteLine(stringBuilder.ToString());
ss.Close();
Console.Read();
}
catch (Exception ex)
{
Console.WriteLine("11111111111111");
}
finally
{
con.Close();
}
#endregion
}
}
}
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容”的更多相关文章
- System.TypeInitializationException: The type initializer for 'Mono.Unix.Native.Stdlib' threw an exception.
08-31 17:02:03: ### DEBUG ##########################System.TypeInitializationException: The type ini ...
- System.TypeInitializationException: 'The type initializer for 'MySql.Data.MySqlClient.Replication.ReplicationManager' threw an exception.'
下午在调试的时候报错数据库连接就报错我就很纳闷后面用原来的代码写发现还是报错 System.TypeInitializationException: 'The type initializer for ...
- System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) .
今天使用sql server 2008 R2管理器,进行SQL查询时,频率非常高的报错: System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误. ...
- the type initializer for '' threw an exception
the type initializer for '' threw an exception 问题:程序启动时初始化主窗口类时,弹出该错误.调查:查看类的构造函数是否会有异常抛出.解决:去掉类的构造函 ...
- System.Security.SecurityException The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception
[15/08/19 00:03:10] [DataManager-7292-ERROR] System.Reflection.TargetInvocationException: Exception ...
- 关于System.TypeInitializationException异常
什么是System.TypeInitializationException 作为类初始值设定项引发的异常的包装器而引发的异常. 继承 Object Exception SystemException ...
- .NET 错误 47 存储区提供程序工厂类型“Oracle.DataAccess.Client.OracleClientFactory”未实现 IServiceProvider 接口。请使用实现该接口的存储区提供程序。
问题描述: 最近用VS2010连接ORACLE数据库的时候突然报错“错误 47 存储区提供程序工厂类型“Oracle.DataAccess.Client.OracleClientFactory”未实现 ...
- 解决Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。
解决Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常. 这个问题他们说是oracle的版本问题 但是好像不是...(我感觉VS版本问题,我 ...
- An unhandled exception of type 'System.TypeInitializationException' occurred in System.ServiceModel.dll
异常“ An unhandled exception of type 'System.TypeInitializationException' occurred in System.ServiceMo ...
随机推荐
- DUMP1 企业级电商项目
系统:centos6 配置mirror阿里云 https://opsx.alibaba.com/mirror 远程管理首选:ssh 账户密码登录(ssh user@host) 或者 本地私钥连接服务器 ...
- IBM X3650 M5服务器RAID阵列设置
生产环境中的raid配置说明: 一. 开机后,注意引导界面,按F1键进入BIOS进行设置 二. 进入BIOS后,选择system setting--storage ,进入磁盘阵列配置界面,可以看到M5 ...
- [国家集训队] Crash 的文明世界
不错的树形$ DP$的题 可为什么我自带大常数啊$ cry$ 链接:here 题意:给定一棵$ n$个节点的树,边权为$ 1$,对于每个点$ x$求$ \sum\limits_{i=1}^n dist ...
- Linux(Ubuntu)下安装jdk
一.下载 1)可以去官网下载:http://www.oracle.com/technetwork/java/javase/downloads/ea-jsp-142245.html,比较多,眼花~~· ...
- 使用IDEA新建Web工程启动报404的错误
新换了一个项目组被人吐槽配置文件都能写错,所以打算从头开始一步步搭建一个项目,包含ssm基础框架.mongodb工具类.redis工具类.jsf配置.log配置等 今天先来搭建一个web工程.工程搭建 ...
- 【blog】Markdown的css样式推荐
参考博客 分享一款Markdown的css样式:https://www.cnblogs.com/zhangjk1993/p/5442676.html 美化Markdown输出的HTML文档:http: ...
- 使用recyclerView item布局match_parent属性失效的问题
https://blog.csdn.net/overseasandroid/article/details/51840819
- python - zipfile模块
import zipfile # f=zipfile.ZipFile(filename, mode="r", compression=ZIP_STORED, allowZip64= ...
- Django学习手册 - 基于requests API验证(二)
原理分析: API接口验证 1.一个认证的key server端 和 client端都必须有这么一个认证key. 2.认证登录的时间限定 3.保存已验证的信息,在以后的验证不能再次登录 client ...
- 20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题
20165237 2017-2018-2 <Java程序设计>第十周考试补做及编程题 知识点 1.链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用 . ...