.net 访问Oracle的连接字符串 (果然BT)


Posted on  2008-08-19 10:31  胖在一方 阅读( 937) 评论( 1编辑  收藏

方法一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora) 这个大家都知道,就不细说了

oracleConnectionString : data source = orcl;user id= scott; password=tiger;persist security info=false;

 

方法二,是利用OldeDb 来连接

oracleConnectionString :

    Provider=OraOLEDB.Oracle.1;User ID=scott;Password=tiger;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.125.250)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))

貌似MSDN上OledbCommandType 没有可以对应Oracle 的  ref Cursor ,所以就抛弃了他,

 

方法三:需要oracle客户端,但是不需要配置tnsnames.ora

连接字符串 oracleConnectionString

User ID=scott;Password=tiger;Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=10.10.125.250)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
但是按照网上的Demo来做,经常提示:

未处理的“System.ArgumentException”类型的异常出现在 system.data.oracleclient.dll 中。

其他信息: Invalid length for connection option 'data source', maximum length is 128.

难道是代码给错了?

 

经过计算oracleConnectionString 他的长度是在180以上 ?

我就把其中一些的空格给去了,一个一个试,想法果然够BT

竟然没有Exception,不会是长度的限制吧,我就再一个一个把空格加上,结果貌似长度不超过 177 ,就可以连接上去? 难道真的这么BT 

 

复制代码
            string strconn ="User ID=scott;Password=tiger;Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=10.10.125.250)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" ;
            MessageBox.Show(strconn.Length.ToString());
            System.Data.OracleClient.OracleConnection oraConn  
=new
 System.Data.OracleClient.OracleConnection(strconn);
        
            
try

            {
                oraConn.Open();
                MessageBox.Show(oraConn.State.ToString()); 
//177
            }
            
catch
 (Exception ex)
            {
                MessageBox.Show(ex.Message );
            }
            
finally

            {
                 oraConn.Close();    
            }
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值