• OracleHelper.cs


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using System.Configuration;
    using System.Data;
    using System.Data.OracleClient;

    namespace AirplaneTicketSubscribeObject.DAL
    {
    /// <summary>
    /// OracleServer数据库访问的通用工具类
    /// </summary>
    public abstract class OracleHelper
    {
    //只读的静态数据库连接字符串
    public static readonly string connString = ConfigurationManager.ConnectionStrings["OracleStr"].ConnectionString;

    #region 执行 增 删 改
    /// <summary>
    /// 执行 增 删 改
    /// </summary>
    /// <param name="Oracle">要执行的Oracle</param>
    /// <param name="param">参数</param>
    /// <returns>影响行数</returns>
    public static int ExecuteNonQuery(string sql,params OracleParameter[] param)
    {
    //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
    using (OracleConnection conn = new OracleConnection(connString))
    {
    //实例化命令对象,指定Oracle,与连接对象
    using (OracleCommand cmd = new OracleCommand(sql, conn))
    {
    //如果有参数
    if (param != null)
    {
    //批量添加参数
    cmd.Parameters.AddRange(param);
    }
    //打开连接
    conn.Open();
    //执行Oracle并返回影响行数
    return cmd.ExecuteNonQuery();
    }
    }
    }
    #endregion

    #region 执行 查询
    /// <summary>
    /// 执行 查询
    /// </summary>
    /// <param name="Oracle">要执行的Oracle</param>
    /// <param name="param">参数</param>
    /// <returns>数据集</returns>
    public static OracleDataReader ExecuteReader(string Oracle,params OracleParameter[] param)
    {
    //实例化连接对象,并指定连接字符串
    OracleConnection conn = new OracleConnection(connString);
    //实例化命令对象,指定Oracle,与连接对象
    using (OracleCommand cmd = new OracleCommand(Oracle, conn))
    {
    //如果有参数
    if (param != null)
    {
    //批量添加参数
    cmd.Parameters.AddRange(param);
    }
    //打开连接
    conn.Open();
    //执行Oracle并返回影响行数,如果将返回的OracleDataReader关闭时也将关闭连接
    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
    }
    }

    /// <summary>
    /// 执行查询存储过程,并且返回一个OracleDataReader对象(使用OracleDataReader对象执行)
    /// </summary>
    /// <param name="sql">存储过程名</param>
    /// <param name="ps">存储过程中需要的参数</param>
    /// <returns>读取器对象</returns>
    public static OracleDataReader ExecuteReaderProc(string Oracle, params OracleParameter[] param)
    {
    //实例化连接对象,并指定连接字符串
    OracleConnection conn = new OracleConnection(connString);
    //实例化命令对象,指定Oracle,与连接对象
    using (OracleCommand cmd = new OracleCommand(Oracle, conn))
    {
    //如果有参数
    if (param != null)
    {
    //批量添加参数
    cmd.Parameters.AddRange(param);
    }
    //打开连接
    conn.Open();
    cmd.CommandType = CommandType.StoredProcedure;
    //执行Oracle并返回影响行数,如果将返回的OracleDataReader关闭时也将关闭连接
    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
    }
    }

    #endregion

    #region 完成数据的查询,返回DataTable
    /// <summary>
    /// 完成数据的查询,返回DataTable
    /// </summary>
    /// <param name="Oracle">要执行的Oracle</param>
    /// <param name="param">参数</param>
    /// <returns>DataTable</returns>
    public static DataTable GetTable(string sql,params OracleParameter[] param)
    {
    //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
    using (OracleConnection conn = new OracleConnection(connString))
    {
    OracleDataAdapter adp = new OracleDataAdapter(sql, conn);
    if (param != null)
    {
    adp.SelectCommand.Parameters.AddRange(param);
    }
    DataTable dt = new DataTable();
    adp.Fill(dt);
    return dt;
    }
    }
    #endregion
    #region 返回首行首列
    /// <summary>
    /// 返回首行首列
    /// </summary>
    /// <param name="OracleSql">要执行的OracleSql</param>
    /// <param name="param">参数</param>
    /// <returns></returns>
    public static int ExecuteCount(string OracleSql, params OracleParameter[] param)
    {
    //实例化连接对象,并指定连接字符串
    OracleConnection conn = new OracleConnection(connString);
    //实例化命令对象,指定Oracle,与连接对象
    using (OracleCommand cmd = new OracleCommand(OracleSql, conn))
    {
    //如果有参数
    if (param != null)
    {
    //批量添加参数
    cmd.Parameters.AddRange(param);
    }
    //打开连接
    conn.Open();
    //执行Oracle并返回影响行数,如果将返回的OracleDataReader关闭时也将关闭连接
    return Convert.ToInt32(cmd.ExecuteScalar());
    }
    }
    #endregion

    internal static void Close()
    {
    throw new NotImplementedException();
    }
    }

    }

  • 相关阅读:
    Java Collection工具类
    WebKit中WTFMove实现
    宏参数(Arguments)的扩展
    Block对变量的引用
    宏定义里面为什么要加括号?
    WebKit Inside: DOM树的构建
    宏定义中的重复副作用
    @weakify 与 @strongify 实现原理
    可变参数宏
    【问题解决】VSCode使用ssh远程连接出错Bad owner or permissions on C:\\Users\\wydxr/.ssh/config
  • 原文地址:https://www.cnblogs.com/huangf714/p/5876312.html
Copyright © 2020-2023  润新知