zoukankan      html  css  js  c++  java
  • AccessHelper

    using System;
    using System.Configuration;
    using System.Data;
    using System.Data.OleDb;
    using System.Collections;
    using System.Text.RegularExpressions;
    using Help.Common;

    namespace DAL
    {
        public abstract class AccessHelper
        {
            public static readonly string ConnectionString = ConfigurationManager.AppSettings["Help"];

            private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());

            public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteNonQuery(ConnectionString, cmdType, cmdText, commandParameters);
            }

            public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                using (OleDbConnection conn = new OleDbConnection(connectionString))
                {
                    PrepareCommand(cmd, conn, cmdType, cmdText, commandParameters);
                    int val = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    return val;
                }
            }

            public static int ExecuteNonQuery(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }


            public static OleDbDataReader ExecuteReader(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteReader(ConnectionString, cmdType, cmdText, commandParameters);
            }


            public static OleDbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                OleDbConnection conn = new OleDbConnection(connectionString);
                try
                {
                    PrepareCommand(cmd, conn, cmdType, cmdText, commandParameters);
                    OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return rdr;
                }
                catch
                {
                    conn.Close();
                    throw;
                }
            }

            public static OleDbDataReader ExecuteReader(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                OleDbDataReader rdr = cmd.ExecuteReader();
                cmd.Parameters.Clear();
                return rdr;
            }

            public static object ExecuteScalar(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteScalar(ConnectionString, cmdType, cmdText, commandParameters);
            }

            public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();

                using (OleDbConnection connection = new OleDbConnection(connectionString))
                {
                    PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                    object val = cmd.ExecuteScalar();
                    cmd.Parameters.Clear();
                    return val;
                }
            }

            public static object ExecuteScalar(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {

                OleDbCommand cmd = new OleDbCommand();

                PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }

            public static DataTable ExecuteTable(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteTable(ConnectionString, cmdType, cmdText, commandParameters);
            }


            public static DataTable ExecuteTable(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();

                using (OleDbConnection connection = new OleDbConnection(connectionString))
                {
                    PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);

                    OleDbDataAdapter ap = new OleDbDataAdapter();
                    ap.SelectCommand = cmd;
                    DataSet st = new DataSet();
                    ap.Fill(st, "Result");
                    cmd.Parameters.Clear();
                    return st.Tables["Result"];
                }
            }

            public static DataTable ExecuteTable(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {

                OleDbCommand cmd = new OleDbCommand();

                PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                OleDbDataAdapter ap = new OleDbDataAdapter();
                ap.SelectCommand = cmd;
                DataSet st = new DataSet();
                ap.Fill(st, "Result");
                cmd.Parameters.Clear();
                return st.Tables["Result"];
            }

            public static void CacheParameters(string cacheKey, params OleDbParameter[] commandParameters)
            {
                parmCache[cacheKey] = commandParameters;
            }


            public static OleDbParameter[] GetCachedParameters(string cacheKey)
            {
                OleDbParameter[] cachedParms = (OleDbParameter[])parmCache[cacheKey];

                if (cachedParms == null)
                    return null;

                OleDbParameter[] clonedParms = new OleDbParameter[cachedParms.Length];

                for (int i = 0, j = cachedParms.Length; i < j; i++)
                    clonedParms[i] = (OleDbParameter)((ICloneable)cachedParms[i]).Clone();

                return clonedParms;
            }

            private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms)
            {
                if (conn.State != ConnectionState.Open)
                    conn.Open();

                cmd.Connection = conn;
                cmd.CommandText = cmdText;

                cmd.CommandType = cmdType;

                if (cmdParms != null)
                {
                    foreach (OleDbParameter parm in cmdParms)
                        cmd.Parameters.Add(parm);
                }
            }
        }
    }


     

  • 相关阅读:
    【转】staruml用户手册目录【中文翻译版】
    [转]“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
    [转]程序员面试题精选100题(51)顺时针打印矩阵
    [转] 程序员面试题精选100题(35)找出两个链表的第一个公共结点
    [转] 深入探索.NET框架内部了解CLR如何创建运行时对象
    海量数据处理的几种方法总结 .
    分析函数总结
    PLSQL实现排序(冒泡、选择、快速)
    oracle 分析函数2
    创建表分区的总结
  • 原文地址:https://www.cnblogs.com/jcomet/p/1343889.html
Copyright © 2011-2022 走看看