900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ado.net访问ORACLE数据库点滴

ado.net访问ORACLE数据库点滴

时间:2020-12-16 05:15:01

相关推荐

ado.net访问ORACLE数据库点滴

不知是不是受到微软影响,.net程序员似乎与生俱来与MS SQLSERVER密不可分,我所认识的.net开发者都用微软的MS。我也忘记了当时为何不加任何考虑的就投入了SQL SERVER的怀抱,陪伴着他从7.0直到现在的。当然这是微软所希望的,任何一个企业都希望顾客选择自己“一条龙”服务。但作为开发者我却不希望一直这样下去,特别是我们在实际工作中会接触到许多不同的系统,如果要对他们进行整合对接,擅长一家之言就稍显力不从心了。最近我就遇到了.net访问oracle的问题,虽然这个问题百度之后一堆解决方案,但真要吃透却是要真正消耗几个脑细胞的。闲话不说,下面简单讲述下事情经过。

公司最近发展很快,新上了很多项目,加之原先有我们自己的一套信息系统,因此,信息孤岛现象特别严重。因此,有必要对这些小孤岛慢慢进行整合统一,以达到资源共享,方便管理。作为客户,开发不是我们的强项。尤其以前比较封闭,很少接触ORACLE数据库,只是听说ORACLE和SQL SERVER从表结构到事物处理,甚至连SQL语法结构也有很大差别。但为了实现信息共享、消除信息孤岛这个“宏伟蓝图”,也只得克服困难,迎难而上了。

用访问ORACLE数据库有很多方式。微软提供了System.Data.OracleClient.dll组建,ORACLE提供了Oracle.DataAccess.Client组件。这两个DLL里面都提供了若干访问ORACLE数据库属性和方法。我的需求不是很复杂,只要能实现用从ORACLE里面读取表数据并简单显示出来就OK了。于是我做了个小测试,主要代码如下:

1 OracleConnectionoracleConn = new OracleConnection();

2 oracleConn.ConnectionString = " DataSource=127.0.0.1;PersistSecurityInfo=True;UserID=apts;Password=apts;Unicode=True " ;

3

4 string queryString = " SELECT*FROMaptsjn.tablename " ;

5 using (OracleConnectionconnection = new OracleConnection(oracleConn.ConnectionString))

6 {

7 OracleCommandcommand = new OracleCommand(queryString,connection);

8 connection.Open();

9 OracleDataReaderreader = 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。里面是这样的:

1 #TNSNAMES.ORANetworkConfigurationFile:C:\oracle\ora90\network\admin\tnsnames.ora

2 #GeneratedbyOracleconfigurationtools.

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地址会引发错误,不知为何,日后慢慢研究吧。高手莫笑:)。

需要说明的是,访问ORACLE需要安装ORACLE客户端的,否则提示版本错误。客户端我安装的是ORACLE9i,服务器是ORACLE10g,tnsnames.ora文件在C:\Oracle\ora90\network\ADMIN里面。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。