奇怪的类型初始值设定项异常

本文探讨了一种在使用不同Oracle客户端访问Oracle 11g数据库时出现的类型初始化异常问题。作者发现当先后使用System.Data.OracleClient和Oracle.DataAccess.Client进行数据库操作时,会出现兼容性错误。通过调整访问顺序可以解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在开发机上测试访问oracle的winform程序时发现了奇怪的类型初始值设定项异常。开发机装了oracle11g数据库,oracle10g客户端。程序访问11g数据库中的数据。

通常访问oracle要么用微软的System.Data.OracleClient,要么用Oracle自己的Oracle.DataAccess.Client。

我在代码中发现在一个方法里同时使用了这两种方式,先用System.Data.OracleClient连接数据库访问数据,完成后关闭数据库连接。然后用Oracle.DataAccess.Client连接数据库,但就在连接时报错:

{System.TypeInitializationException: “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。 ---> Oracle.DataAccess.Client.OracleException 提供程序与此版本的 Oracle 客户机不兼容

当我把连接的顺序换一下,先用Oracle.DataAccess.Client连接数据库访问数据,完成后关闭数据库连接,然后用System.Data.OracleClient连接数据库访问数据,完成后关闭数据库连接。这样不会报错。问题虽然解决了,但我想弄清楚为何会这样,希望了解的人能解释一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值