OracleDatabase.cs

using System;
using System.Data;// DataTable
using System.Configuration;// ConfigurationManager
using Oracle.DataAccess.Client;// OracleConnection,OracleCommand,OracleDataReader,OracleDataAdapter
using System.Collections;// ArrayList

/// <summary>
/// OracleDatabase 的摘要说明
/// </summary>

/// <example>
/// Web.config 中配置如下:
/// <code>
/// <connectionStrings>
/// 	<add name="link_sample" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521))(CONNECT_DATA=(SID=xxxx)));User Id=xxxx;Password=xxxx;" providerName="System.Data.OracleClient" />
/// </connectionStrings>
/// </code>
/// </example>
public class OracleDatabase
{
    // 构造函数
    public OracleDatabase() { }

    // 连接状态检测
    public bool ConnectionStatus(string connStr)
    {
        bool result = false;
        OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
        try
        {
            conn.Open();
            OracleCommand cmd = conn.CreateCommand();
            cmd.CommandText = "select 1 from dual";// 连接测试语句
            OracleDataReader dr = cmd.ExecuteReader();
            dr.Close();
            result = true;
        }
        catch
        {
            result = false;
        }
        finally
        {
            conn.Close();
        }
        return result;
    }

    // 执行SQL并获取结果,重载
    public string Query(string connStr, string sql)
    {
        string result = "";
        try
        {
            OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
            OracleCommand cmd = conn.CreateCommand();
            cmd.InitialLONGFetchSize = -1;// 设定为抓取不限长度的Long字段
            conn.Open();
            cmd.CommandText = sql;
            OracleDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                result = dr[0].ToString();
            }
            dr.Close();
            conn.Close();
        }
        catch
        {
        }
        return result;
    }

    // 执行SQL并获取结果,重载
    public string Query(string connStr, string sql, int num)
    {
        string result = "";
        try
        {
            OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
            OracleCommand cmd = conn.CreateCommand();
            cmd.InitialLONGFetchSize = -1;// 设定为抓取不限长度的Long字段
            conn.Open();
            cmd.CommandText = sql;
            OracleDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                result = dr[num].ToString();
            }
            dr.Close();
            conn.Close();
        }
        catch
        {
        }
        return result;
    }

    // 执行SQL并确认,重载
    public bool Perform(string connStr, string sql)
    {
        bool result = false;
        try
        {
            OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
            OracleCommand cmd = conn.CreateCommand();
            conn.Open();
            cmd.CommandText = sql;
            OracleDataReader dr = cmd.ExecuteReader();
            dr.Close();
            conn.Close();
            result = true;
        }
        catch
        {
        }
        return result;
    }

    // 执行SQL并确认,重载
    public bool Perform(string connStr, string sql, out string err)
    {
        bool result = false;
        err = null;
        try
        {
            OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
            OracleCommand cmd = conn.CreateCommand();
            conn.Open();
            cmd.CommandText = sql;
            OracleDataReader dr = cmd.ExecuteReader();
            dr.Close();
            conn.Close();
            result = true;
        }
        catch (Exception ex)
        {
            err = ex.Message;
        }
        return result;
    }

    // 执行SQL并获取数据集
    public DataSet GetDataSet(string connStr, string sql)
    {
        DataSet ds = new DataSet();
        try
        {
            OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
            OracleCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            OracleDataAdapter da = new OracleDataAdapter(cmd);
            da.Fill(ds);
        }
        catch
        {
        }
        return ds;
    }

    // 执行SQL并获取数据表
    public DataTable GetDataTable(string connStr, string sql)
    {
        DataTable dt = new DataTable();
        OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
        try
        {
            OracleCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            OracleDataAdapter da = new OracleDataAdapter(cmd);
            da.Fill(dt);
        }
        catch
        {
        }
        return dt;
    }

    // 执行SQL并获取数据列
    public ArrayList GetList(string connStr, string sql)
    {
        ArrayList list = new ArrayList();
        OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings[connStr].ConnectionString);
        OracleCommand cmd = conn.CreateCommand();
        conn.Open();
        cmd.InitialLONGFetchSize = -1;// 设定为抓取不限长度的Long字段
        cmd.CommandText = sql;
        OracleDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            list.Add(dr[0].ToString());// 每次读取后数据前推,因此只需读首行即可
        }
        dr.Close();
        conn.Close();
        return list;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值