asp.net连接oracle的问题及方法总结

作者:袖梨 2022-06-25

.net连oracle数据库的两个方法介绍
1. 安装oracle客户端,连接oracle

    需要在客户端%oracle_client_home%network/admin/配置tnsnames.ora,以服务名aa为例,客户端和服务器服务名及连接串需要保持一致。服务名的配置实例如:

 代码如下 复制代码

a =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = helen)(PORT = 1521))
    )
    (CONNECT_DATA =

      (SERVER = DEDICATED)
      (SERVICE_NAME = a)
    )
  )

程序代码:

 代码如下 复制代码

 String connOra = "Data Source=a;User ID=a;password=a;Unicode=True";

 OracleConnection conn = new OracleConnection(connOra);
 conn.Open();
  if (conn.State == ConnectionState.Open)
      Response.Write("DataOracle.aspx conn open success");
 else

Response.Write("DataOracle.aspx conn open failure");

 
2.不安装oracle客户端,连接oracle

 不需要配置tnsnames.ora,把主机、端口、数据库ID(SID)写入连接字符串,其他连接同上。

新的连接字符串为:

 代码如下 复制代码

Data Source= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = helen)(PORT = 1521))) (CONNECT_DATA =  (SID= a) ));User ID=a;password=a;Unicode=True

公司用的是oracle10g,vs2010,都是32位的

1) oracle10g在64位win7无法直接安装,解决方法:在安装启动exe文件右键打开属性菜单,然后选择兼容性--->勾选以兼容性运行这个程序-->选择winxp,保存后可以安装。

2)之前用winxp32位系统,连接字符串是这样子的

 代码如下 复制代码

Access.Client"/>

换到现在64位win7后一直不能运行,折腾了一天才知道竟然是连接字符串的问题。提示的错误是说oracle客户端版本不够高,不管连接字符串怎么改都是一样错误提示,百度后找到很多文章都是说权限不足原因(不确定是否有这个原因),改了后还是一样问题,这个问题折腾了我一天的时间!!,后来还下载了oracle的odp.net组件,32位的64位的各种折腾,都有错误提示,按错误提示在网上搜索都不能解决。以为framework的类和odp.net有兼容问题。后来他仔细看了odp.net的说明,本来打算是连接远程服务器,就试着用  

 代码如下 复制代码

 

这样的字符串,因为之前大量变动的原因,所以也折腾了很久也没连上,正当我打算要放弃回家重装32位系统时,刷页面发现错误提示是“未找到表或视图”,我靠!然后就这样发现了问题的根源:连接字符串不对呀。然后换上System.Data.OracleClient也正常了。
经过测试发现另外一种写法也是可以的: 

 代码如下 复制代码


关于

相关文章

精彩推荐