ado.net访问ORACLE数据库点滴
不知是不是受到微软影响,.net程序员似乎与生俱来与MS SQLSERVER密不可分,我所认识的.net开发者都用微软的MS。我也忘记了当时为何不加任何考虑的就投入了SQL SERVER的怀抱,陪伴着他从7.0直到现在的2008。当然这是微软所希望的,任何一个企业都希望顾客选择自己“一条龙”服务。但作为开发者我却不希望一直这样下去,特别是我们在实际工作中会接触到许多不同的系统,如果要对他们进行整合对接,擅长一家之言就稍显力不从心了。最近我就遇到了.net访问oracle的问题,虽然这个问题百度之后一堆解决方案,但真要吃透却是要真正消耗几个脑细胞的。闲话不说,下面简单讲述下事情经过。
公司最近发展很快,新上了很多项目,加之原先有我们自己的一套信息系统,因此,信息孤岛现象特别严重。因此,有必要对这些小孤岛慢慢进行整合统一,以达到资源共享,方便管理。作为客户,开发不是我们的强项。尤其以前比较封闭,很少接触ORACLE数据库,只是听说ORACLE和SQL SERVER从表结构到事物处理,甚至连SQL语法结构也有很大差别。但为了实现信息共享、消除信息孤岛这个“宏伟蓝图”,也只得克服困难,迎难而上了。
用ADO.NET访问ORACLE数据库有很多方式。微软提供了System.Data.OracleClient.dll组建,ORACLE提供了Oracle.DataAccess.Client组件。这两个DLL里面都提供了若干访问ORACLE数据库属性和方法。我的需求不是很复杂,只要能实现用ADO.NET从ORACLE里面读取表数据并简单显示出来就OK了。于是我做了个小测试,主要代码如下:
2 oracleConn.ConnectionString = " Data Source=127.0.0.1;Persist Security Info=True;User ID=apts;Password=apts;Unicode=True " ;
3
4 string queryString = " SELECT * FROM aptsjn.tablename " ;
5 using (OracleConnection connection = new OracleConnection(oracleConn.ConnectionString))
6 {
7 OracleCommand command = new OracleCommand(queryString, connection);
8 connection.Open();
9 OracleDataReader reader = command.ExecuteReader();
10 try
11 {
12 if (reader.Read())
13 {
14 Response.Write(reader[ 0 ].ToString());
15 }
16 }
17 finally
18 {
19 reader.Close();connection.Open();
20 }
21}
代码写好了,这样就可以了吗?一测试,提示" ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME". 郁闷了。.net里面访问数据库有web.config配置文件,那么访问ORACLE也应该有吧,百度一下,果然需要这个东东:tnsnames.ora。里面是这样的:
2 # Generated by Oracle configuration tools.
3
4 #sample
5
6 #DATABASENAME =
7 # (DESCRIPTION =
8 # (ADDRESS_LIST =
9 # (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2 )(PORT = 1521 ))
10 # )
11 # (CONNECT_DATA =
12 # (SERVICE_NAME = servicename)
13 # )
14 # )
15
16 #这里是我定义的
17 APTSLCNEW =
18 (DESCRIPTION =
19 (ADDRESS_LIST =
20 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168 . 1.2 )(PORT = 1521 ))
21 )
22 (CONNECT_DATA =
23 (SERVICE_NAME = apts)
24 )
25 )
26
27 …… ……
好了,保存好之后,把上面的 Data Source=127.0.0.1改为Data Source=APTSLCNEW(名字随便起,前后对应就可以了),就这么简单。我试过了,在字符串里面写IP地址会引发错误,不知为何,日后慢慢研究吧。高手莫笑:)。
需要说明的是,ADO.NET访问ORACLE需要安装ORACLE客户端的,否则提示版本错误。客户端我安装的是ORACLE9i,服务器是ORACLE10g,tnsnames.ora文件在C:\Oracle\ora90\network\ADMIN里面。
转载于:https://www.cnblogs.com/ggcfpe/archive/2011/02/23/1962351.html
ado.net访问ORACLE数据库点滴相关推荐
- ado.net能访问oracle,利用ADO.NET访问Oracle数据库的实现
1.前言随着互联网的发展,人们对Web网页的要求越来越多的趋向于动态交互性,而这很大程度上依赖于Web数据库.因为动态交互需要强大的信息系统支持,信息数据以数据库形式表示更容易更新和管理.通过网页如何 ...
- oracle 9I 存储过程复制,使用ADO.NET访问Oracle 9i存储过程(上)_oracle
本文讨论了如何使用 ADO.NET 访问 oracle 存储过程(称为 SQL 编程块)和函数(返回单个值的编程块). 您可以使用以下托管数据提供程序连接到 Oracle 数据库:Microsoft ...
- vs使用ado连接oracle,在VS环境下以ADO方式操作Oracle数据库
利用ADO引擎方式访问Oracle数据库的实现方法: 定义数据库头文件为CDBOperation.h #pragma once #import "C:\Program Files\Commo ...
- 使用 ADO.NET 访问 Oracle 9i 存储过程
使用 ADO.NET 访问 Oracle 9i 存储过程 show toc 欢迎来到 MSDN > 数据 使用 ADO.NET 访问 Oracle 9i 存储过程 发布日期: 5/28/2004 ...
- 3种方式限制ip访问Oracle数据库
墨墨导读:本文来自墨天轮读者投稿,分享了3种限制某个ip或某个ip段访问Oracle数据库的方式,希望对大家有帮助. 一.概述 本文将给大家介绍如何限制某个ip或某个ip段才能访问Oracle数据库 ...
- 【方法】如何限定IP访问Oracle数据库
[方法]如何限定IP访问Oracle数据库 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知 ...
- 访问Oracle数据库的四款工具软件介绍
本文由Markdwon语法编辑器编辑完成. 1. Oracle数据库介绍: 关于Oracle数据库,以及它和MySQL, SQL Server等其他数据库的介绍和区别,可以查看以下来自知乎的链接. h ...
- 使用OLE对象访问Oracle数据库
使用OLE对象访问Oracle数据库 来源: 作者: 2006-08-02 出处:PCDOG.COM 关键字: OLE即对象联接和嵌入技术,使用这一技术,我们在VB中不用任何控件就可轻松访问Oracl ...
- 防火墙起不来 oracle,windows防火墙造成不能访问oracle数据库
我也遇到了这个问题,将完整的解决方法转贴如下,仅供参考! 在防火墙上开放Oracle服务端口 要使Oracle客户端能正常连接到设置有防火墙的安装在windows上的Oracle服务器,单开放一个15 ...
最新文章
- 自动化是计算机相关专业英语,自动化专业英语词汇
- mysql 性能和安全性_从源码解读Mysql 5.7性能和数据安全性的提升
- AngularJS 1.3 支持使用 $digest() 循环实现延迟
- Maven常用命令-创建Java项目
- OSPF基本概念单与区域配置
- JS来推断文本框内容改变事件
- Windows的Git Bash使用tree命令
- 基于snowflake的序列号生成器
- 域名 ip 校验正则表达式
- matlab自定义排序
- 数据库系统原理与应用教程(039)—— MySQL 查询(一):SELECT 命令的语法分析
- 凤凰os安装super su
- c++运行时报Floating point exception错误
- MINIGUI3.2 设置按钮前景色
- java 枚举命名规则,枚举命名惯例 - 复数
- vue 悬浮图标_vue实现移动端悬浮窗效果
- boost circular_buffer的特性及应用
- 用迭代法求Daubechies小波的尺度函数
- 新书问答:Software Wasteland
- 在Jetson Nano上十行代码实现目标检测(jetson_inference)
热门文章
- 1.0数据采集与预处理概述
- XMPP与SIP-IM两大协议的对比
- 计算机中丢失granny2,修复granny2.dll
- Turbo Pascal简介
- python实战应用讲解-【numpy科学计算】scikits-statsmodels模块(附python示例代码)
- 计算机基础名词(二)
- PHY--PUSCH
- 如何给一小段视频添加音乐
- ICCV2021 | 医学影像等小数据集的非自然图像领域能否用transformer?
- [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡