2021-07-28 连接Oracle推荐使用oracle.ManagedDataAccess.dll全托管驱动

本文介绍了如何使用oracle.ManagedDataAccess.dll全托管驱动进行Oracle数据库的连接和操作,包括连接字符串的配置示例以及执行SQL查询的方法。示例代码展示了如何打开连接、执行SQL查询并处理结果,适用于无客户端远程连接或本地连接。

https://www.cnblogs.com/mq0036/p/11052359.html

推荐使用oracle.ManagedDataAccess.dll(oracle.ManagedDataAccess.Client)全托管驱动。实际使用发现,oracle全托管驱动对32位和64位oracle数据库具有很好的连接兼容性。可采用无客户端远程连接oracle,或在本机使用连接

<add name="oraclestr" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))  
        )(CONNECT_DATA=(SERVICE_NAME=xe))
         );User Id=outpbill;Password=password">
  <add name="oraclestr" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521))
        (ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521))  
        (LOAD_BALANCE = yes))(CONNECT_DATA=(SERVICE_NAME=xe))
         );User Id=system;Password=password"/>
 /// <summary>
        ///     执行一条计算查询结果语句,返回查询结果(object)。
        /// </summary>
        /// <param name="SQLString">计算查询结果语句</param>
        /// <returns>查询结果(object)</returns>
        public static object GetSingle(string SQLString)
        {
            using (var connection = new OracleConnection(m_ConnectionString))
            {
                using (var cmd = new OracleCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        object obj = cmd.ExecuteScalar();
                        if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
                        {
                            return null;
                        }
                        return obj;
                    }
                    catch (OracleException e)
                    {
                        connection.Close();
                        throw new Exception(e.Message);
                    }
                }
            }
        }
 public static bool Exists(string strSql)
        {
            object obj = GetSingle(strSql);
            int cmdresult;
            if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
            {
                cmdresult = 0;
            }
            else
            {
                cmdresult = int.Parse(obj.ToString());
            }
            if (cmdresult == 0)
            {
                return false;
            }
            return true;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值