最近需要使用C#连接Oracle进行数据存储,第一次使用C#连接Oracle,网上找了一个ORM,使用的是Dos.ROM,配置起来还算方便,但因为没用过,写配置信息不是很会写,网上搜了一下connectionString的写法,勉强写上了。

写完以后使用测试程序运行,出现了问题:

System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本

网上查解决方法,大多都是修改Oracle的目录权限或者安装Oracle客户端,Oracle安装在公司服务器上,修改权限是不可能了,这辈子都不可能了,只能用其他方法,但是也不想安装Oracle客户端,继续搜索解决方案,发现了一个靠谱一点的,跟我们解决Navicat连接Oracle出现的问题差不多,地址在:https://www.cnblogs.com/t1508001/p/5821325.html。

1.首先下载instantclient_11_2,解压到任意目录。

主要是为了使用其中的oci.dll。

2.配置环境变量

系统变量:在Path中,加入dll的路径;eg:D:\Program Files\PremiumSoft\Navicat Premium 12\instantclient_11_2

用户变量:加一个ORACLE_HOME,也是这个路径:D:\Program Files\PremiumSoft\Navicat Premium 12\instantclient_11_2;

3.最后一步,重启电脑,这一步很重要,不重启不会生效哦。

重启完后,在执行测试程序,发现不报这个错了,换了一个错误:

System.InvalidOperationException”类型的未经处理的异常在 Dos.ORM.dll 中发生 其他信息: 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

问题比较直观,在32位客户端访问64位Oracle server时出现错误,查看了一下测试程序的生成设置:

首选生成32位的,在目标平台修改为x64,保存并重新运行测试程序,出现了新的问题(郁闷中,继续查询):

System.Data.OracleClient.OracleException”类型的未经处理的异常在 Dos.ORM.dll 中发生 其他信息: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

百度了一下,中文错误是:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求服务,最后想到,访问Oracle时使用的是SID,不是服务,是不是我connectionString写的不对,继续查询,发现我写的时用服务的方式,改为用SID的方式,完美解决,数据查询出来了。connectionString书写格式可以参考https://www.jb51.net/article/37008.htm。

最后贴出我写的Dos.ORM的数据库连接配置:

<add name="OracleDosConn" providerName="Dos.ORM.Oracle"connectionString="Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1521)))(CONNECT_DATA = (SID = ORCL)(SERVER = DEDICATED)));User Id=myDb;Password=password;"/>

C#连接ORACLE问题解决记录(System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本等问题)相关推荐

  1. 解决 c#连接Oracle 提示system.data.oracleclient 需要 oracle 客户端软件 8.1.7 或更高版本

    最近在做winform,需要远程连接Oracle,本来测试的都顺利.但是到客户那里了 抛出了 system.data.oracleclient 需要 oracle 客户端软件 8.1.7 或更高版本 ...

  2. 连接oracle数据库异常System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本

    1.连接oracle数据库异常System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本 本人在用公司用C#写的服务连接数据库oracle 时,报出上面的 ...

  3. 解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。

    出现这个错误原因其实是Oracle在服务器上部署的原因,具体操作按照下面的方法就可以. 在用VSTS2005/2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服 ...

  4. System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本?

    System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本? 环境: Win XP SP2+Oracle 10 g+VS 2005 错误:System.D ...

  5. .net调用Oracle 报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本问题

    我又重拾.net搞一搞.老本行了,不过现在已投奔java阵营. 用visual studio 2022运行asp.net程序,结果在读取数据库的时候报错: .net调用Oracle 报错:System ...

  6. 解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”

    在用VS.NET2005+Oracle9.2进行开发的时候,在本地测试可以通过,但是在服务器上不能实现(复制网站,发布网站都不行),报错的具体内容,没记下来,大概就是: "System.Da ...

  7. 解决“System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本”

    问题描述:服务器端装的是Windows XP 和Oracle 10g.在服务器端能够正常的访问Oracle数据库,但远程访问该数据库(使用VS 2005,客户端同样是Oracle10g)提示" ...

  8. oracle 12 问题:需要 Oracle 客户端软件 8.1.7 或更高版本

    环境:win server 2008 r2 oracle 12C 错误提示: System.Web.Services.Protocols.SoapException: 服务器无法处理请求. ---&g ...

  9. 提示 需要 Oracle 客户端软件 8.1.7 或更高版本 解决方案

    一. 问题: 1.使用第三方接口连接Oracle数据库,程序内调用接口提示 "需要 Oracle 客户端软件 8.1.7 或更高版本",网上看了很多答案,依然不起效果,在公司前辈指 ...

最新文章

  1. [翻译] ASP.NET内幕 - IIS处理模型
  2. 一类SG函数递推性质的深入分析——2018ACM陕西邀请赛H题
  3. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制
  4. 荣耀30s鸿蒙5g,荣耀赵明:荣耀30S将掀起5G手机购买狂潮
  5. 【报错笔记】程序报错:Cause: java.sql.SQLException: Invalid value for getInt() - ‘4ab72edc-c02f-423f-ae9e-18c30
  6. LeetCode 1161. 最大层内元素和(层序遍历)
  7. Hibernate 中出现 xxx表 is not mapped xxx的问题
  8. 元旦海报设计素材|节日气氛PNG元素,满满中国风
  9. 表格序号_让Excel表格中的序号自动更新,再也不怕删除、插入行了
  10. Ubuntu——安装中文拼音输入法
  11. python设置字符_Python基础教程 将字符串格式设置功能用于字典
  12. js调用摄像头拍照,js调用摄像头在线拍照,js调用电脑摄像头拍照
  13. 【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框
  14. 如何从零开始学android?
  15. java 曲线纠缠_穿过已知点画平滑曲线(3次贝塞尔曲线)
  16. ASO优化如何做?3个核心要点必须掌握
  17. Vue 开源项目库汇总
  18. 纯前端实现人体抠图背景融合-调用Face++抠像接口API实现人像抠图
  19. 反恐精英系列《CS 2》将于今夏推出,在起源2的加持下视觉、玩法和环境效果可谓十分震撼
  20. 用ansible自动化搭建web、sql服务器、lvs调度器

热门文章

  1. 用声音安抚情绪,焦虑·失眠·婴儿哭闹
  2. 微软免费电子书下载!
  3. 单选框radio改变事件
  4. python iteritems函数_Python six.iteritems方法代码示例
  5. C语言蓝桥杯刷题:受伤的皇后
  6. 超宽带铜线解决方案 - 铜线接入架构与技术
  7. 基于STM32的物联网监控小车
  8. JAVA中方法的调用
  9. Python函数: time.strftime()、time.localtime()、time.time()
  10. sql列转行,行转列,可实操