当前位置: 首页 > news >正文

net网页,连接oracle数据库,.net程序远程连接Oracle数据库

.net 远程连接Oracle数据库看起来挺简单的,但实际做起来还是遇到不少问题。把我今天折腾这个东西的经验给大家共享吧。

访问 oracle 数据库的方式很多,我用的是 OleDbConnection,这个没什么好说的,代码如下:

1. 连接代码

_OleDbConnection = new OleDbConnection(connectionString);

_OleDbConnection.Open();

2.连接字符串

远程连接的连接字符串可以这样写

provider=MSDAORA;host=192.168.1.1;data source=MyTest;user id=system;password=xxx

provider = MSDAORA; 指明oledb 的提供者是oracle数据库

host 是远程 oracle 数据库所在服务器的IP地址,如果端口不是默认的 1521,还要加上一个 Port=xxxx;

data source 是要访问的 oracle 数据库的名字

user id 和 password 就不说了。

要能够成功运行上面代码,我们必须在代码运行的机器上安装 oracle 的客户端,否则会报

The Oracle(tm) client and networking components were not found 这个错误。

3. 主机防火墙设置

我的 Oracle 安装在 Windows 2003 server 上,为了安全起见,必须设置防火墙

我在 Windows 2003 下将 1521 端口开放,发现无法连接数据库,抓包看了一下,oracle 客户端在连接了 1521 后又去连接了一个随机的端口 1197

查了一下资料,oracle 的 network listener 只起一个中介作用,当客户连接它时,它根据配置寻找到相应的数据库实例进程,然后分配一个新的数据库连接,这个连接端口由network listener传递给客户机,此后客户机就不再和network listener打交道了,而是和 oracle.exe 这个进程打交道了。这个新的连接端口是不可预知的,因而会被防火墙阻止。

要解决这个问题,网上查到的办法是采用共享套接字,这个方法应该是一个比较通用的办法,如何做详见

在Windows server 2003系统防火墙上开放Oracle服务端口 连接1521 TNS超时

不过我偷了个懒,因为我只用 windows 的防火墙,windows 防火墙可以对某个进程开放所有端口。所以只要按下面图示的方式设置一下windows 防火墙,就可以访问了。

相关文章:

  • 教务管理系统 免费 php,php教务信息发布与管理系统
  • php 多点到线距离,双绞线的通信距离是多少
  • oracle客户端没有tnsnames,安装好Oracle Client以后没有tnsnames.ora文件
  • 查linux进程数,linux进程状态查询——ps
  • linux 系统调用返回 1,Linux内核系统调用返回-1而不是{-1,-256}
  • win7保存不了linux系统凭据,Win7无法保存凭据导致网络打印机脱机怎么办 解决方法介绍...
  • linux命令中的cp,【整理】Linux命令中:rsync和cp之间的区别
  • linux命令grpck,Linux基础命令---验证组文件grpck
  • linux文件夹按日期排序,linux – 如何按日期对文件内容进行排序?
  • linux源码编译rpm,Linux RPM 命令详解及源码编译安装
  • 企业 linux安装软件有哪些,RedHat 6.0 Enterprise企业版如何使用yum安装软件
  • linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别
  • linux执行计划步骤,linux下定时执行计划任务(Scheduled execution tasks under Linux).doc...
  • linux下跑酷游戏编程,【Unity3D开发小游戏】《跑酷小游戏》Unity开发教程
  • c语言中实型变量的三种类型,在C语言中实型变量分为两种类型.doc
  • 【Leetcode】101. 对称二叉树
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Android 架构优化~MVP 架构改造
  • Android开源项目规范总结
  • Codepen 每日精选(2018-3-25)
  • gulp 教程
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Median of Two Sorted Arrays
  • Mithril.js 入门介绍
  • Mocha测试初探
  • SpriteKit 技巧之添加背景图片
  • SQLServer之索引简介
  • TCP拥塞控制
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 爬虫模拟登陆 SegmentFault
  • 前端面试之闭包
  • 入门到放弃node系列之Hello Word篇
  • 三栏布局总结
  • 微信小程序--------语音识别(前端自己也能玩)
  • 物联网链路协议
  • 一、python与pycharm的安装
  • elasticsearch-head插件安装
  • Nginx实现动静分离
  • NLPIR智能语义技术让大数据挖掘更简单
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 进程与线程(三)——进程/线程间通信
  • 通过调用文摘列表API获取文摘
  • ​iOS实时查看App运行日志
  • #1015 : KMP算法
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (007)XHTML文档之标题——h1~h6
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)Unity3DUnity3D在android下调试
  • (转载)OpenStack Hacker养成指南