access_time 12 years ago language中文
more_vert

[.Net]C#连接Oracle数据库方法

visibility 796 comment 0

一、配置连接字符串

在webconfig中配置连接字符串

<connectionStrings>
    <add name="OracleDatabase" connectionString="Data Source=192.1.1.33;User ID=Raymond;Password=123456;Load Balance Timeout=1000" providerName="System.Data.OracleClient"/>

</connectionStrings>

其中192.1.1.33是IP地址

二、测试连接

我这里是用的企业库,直接用System.Data.OracleClient命名空间下的OracleConnection类也可以的(参考http://developer.51cto.com/art/200911/161056.htm

Database db = DatabaseFactory.CreateDatabase(this.DBConnString);
   DbCommand command = db.GetStoredProcCommand(this.ProcedureName);

DBConnString是连接字符串对应webconfig中的配置

这个时候我们会遇到一个错误:

system.data.oracleclient 需要 oracle 客户端软件 8.1.7 或更高版本

由于我测试的服务器上并没有安装Oracle服务器端工具,所以就出现了这个问题,解决办法安装oracle客户端工具到服务器上,于是我安装了Oracle9i客户端精简版到服务器上

这个时候再次运行还是出错,错误信息和这个一样,重启IIS(cmd iisreset)后就生效了,现在变成了另外的错误:

监听进程不能解析在连接描述符中给出的 Service Name

出现这个错误的原因是没有配置好

这个时候还需要在Oracle客户端配置下,我安装在d盘下的

d:\oracle\ora90\network\admin\tnsnames.ora

用记事本打开这个文件,修改:

在其中添加

192.1.1.33 =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.33)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = sname)
    )
)

其中sname是服务名这个要对应 host是oracle服务器的ip

这样就可以成功了

另外提醒一下,如果没有配置好,还会出现下面类似的错误:

无法处理服务名 等

info Last modified by Raymond 12 years ago copyright This page is subject to Site terms.
Like this article?
Share on

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts

Follow Kontext

Get our latest updates on LinkedIn.

Want to contribute on Kontext to help others?

Learn more

More from Kontext