原文发布时间为:2009-10-28 —— 来源于本人的百度文章 [由搬家工具导入]

using System;
using System.Data;
using System.Data.OleDb;

public class AccessHelper
{
    private string configName = string.Empty;

    public AccessHelper()
    {
        this.configName = "conn";//默认值
    }

    /// <summary>
    /// 实例化。http://hi.baidu.com/handboy
    /// </summary>
    /// <param name="ConfigName">配置文件Add的name属性值。</param>
    public AccessHelper(string ConfigName)
    {
        this.configName = ConfigName;
    }

    /// <summary>
    /// 数据库连接。
    /// </summary>
    private string ConnectionValue
    {
        get
        {
            return System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString;
        }
    }
    /// <summary>
    /// 用于执行一段SQL语句。
    /// default Command type is text
    /// </summary>
    /// <param name="cmdText">command的字符串 (SQL Statement)</param>
    /// <param name="cmdParms">参数列表 (Paramters)</param>
    /// <returns>返回影响行数 (effect line number)</returns>
    public int ExecuteNonQuery(string cmdText, params OleDbParameter[] cmdParms)
    {
        OleDbCommand cmd = new OleDbCommand();

        using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
        {
            PrepareCommand(cmd, conn, cmdText, cmdParms);
            int val = cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }
    }

    /// <summary>
    /// 用于执行一段SQL语句。
    /// To excute a SQL statement, which reuturns a integer stand for effect line number.
    /// </summary>
    /// <param name="cmdType">command的字符串 (SQL Statement)</param>
    /// <returns>返回影响行数 (effect line number)</returns>
    public int ExecuteNonQuery(string cmdText)
    {
        OleDbCommand cmd = new OleDbCommand();
        using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
        {
            PrepareCommand(cmd, conn,cmdText, null);
            int val = cmd.ExecuteNonQuery();
            return val;
        }
    }

    /// <summary>
    /// 用于执行一个Select语句返回一个datareader
    /// To excute a SQL statement, and reuturns a dataReader.
    /// default command type is text
    /// </summary>
    /// <param name="cmdText">command的字符串 (SQL Statement)</param>
    /// <param name="cmdParms">参数列表 (Paramters)</param>
    /// <returns>datareader</returns>
    public OleDbDataReader ExecuteReader(string cmdText, params OleDbParameter[] cmdParms)
    {
        OleDbCommand cmd = new OleDbCommand();
        OleDbConnection conn = new OleDbConnection(ConnectionValue);

        // we use a try/catch here because if the method throws an exception we want to
        // close the connection throw code, because no datareader will exist, hence the
        // commandBehaviour.CloseConnection will not work
        try
        {
            PrepareCommand(cmd, conn,cmdText, cmdParms);
            OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            return rdr;
        }
        catch
        {
            conn.Close();
            throw;
        }
    }

    /// <summary>
    /// 用于执行一个Select语句返回一个datareader
    /// To excute a SQL statement, and reuturns a dataReader.
    /// </summary>
    /// <param name="cmdType">command的字符串 (SQL Statement)</param>
    /// <returns>dataReader</returns>
    public OleDbDataReader ExecuteReader(string cmdText)
    {
        OleDbCommand cmd = new OleDbCommand();
        OleDbConnection conn = new OleDbConnection(ConnectionValue);
        // we use a try/catch here because if the method throws an exception we want to
        // close the connection throw code, because no datareader will exist, hence the
        // commandBehaviour.CloseConnection will not work
        try
        {
            PrepareCommand(cmd, conn, cmdText, null);
            OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return rdr;
        }
        catch
        {
            conn.Close();
            throw;
        }
    }

    /// <summary>
    /// 用于读取一个值,查询所返回的是结果集中第一行的第一列
    /// To excute a SQL statement, and returns the first column of the first line
    /// Default command type is text
    /// </summary>
    /// <param name="cmdText">command的字符串 (SQL Statement)</param>
    /// <param name="cmdParms">参数列表 (Paramters)</param>
    /// <returns>the first column of the first line</returns>
    public string ExecuteScalar(string cmdText, params OleDbParameter[] cmdParms)
    {
        OleDbCommand cmd = new OleDbCommand();

        using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
        {
            PrepareCommand(cmd, conn,cmdText, cmdParms);
            string val = Convert.ToString(cmd.ExecuteScalar());
            cmd.Parameters.Clear();
            return val;
        }
    }

    /// <summary>
    /// 用于读取一个值,查询所返回的是结果集中第一行的第一列
    /// To excute a SQL statement, and returns the first column of the first line
    /// </summary>
    /// <param name="cmdType">command的字符串 (SQL Statement)</param>
    /// <param name="cmdText">command的类型,具体见:CommandType (Command type)</param>
    /// <param name="cmdParms">参数列表 (Paramters)</param>
    /// <returns>the first column of the first line</returns>
    public string ExecuteScalar(string cmdText)
    {
        OleDbCommand cmd = new OleDbCommand();

        using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
        {
            PrepareCommand(cmd, conn, cmdText, null);
            string val = Convert.ToString(cmd.ExecuteScalar());
            return val;
        }
    }

    /// <summary>
    /// 在执行SQL语句之前的准备工作
    /// </summary>
    /// <param name="cmd">command</param>
    /// <param name="conn">connection</param>
    /// <param name="cmdType">command类型</param>
    /// <param name="cmdText">command字符串</param>
    /// <param name="cmdParms">参数列表</param>
    private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, string cmdText, OleDbParameter[] cmdParms)
    {
        cmd.Connection = conn;
        cmd.CommandText = cmdText;
        if (cmdParms != null)
        {
            foreach (OleDbParameter parm in cmdParms)
                cmd.Parameters.Add(parm);
        }
        if (conn.State != ConnectionState.Open)
        {
            conn.Open();
        }
    }

}

最新文章

  1. macbook air 开机黑屏解决方法
  2. daterangepicker+ bootstrap +php +ajax +datatable双日历的使用
  3. iOS开发小技巧--高斯模糊框架的应用
  4. MUSIC算法学习笔记
  5. 解决Linux/aix 下的websphere log4j不生效
  6. backbone csdn
  7. 在Windows下搭建React Native Android开发环境
  8. hdu 4884 TIANKENG’s rice shop(模拟)
  9. 排查Linux机器是否已经被入侵
  10. Archlinux运行FlashTool
  11. python 标准模块shlex
  12. [LeetCode] Most Common Word 最常见的单词
  13. rest-framework基本组件—主要看频率
  14. 文件IO(2)
  15. c++builder 6 [Linker Fatal error] Unable to open file &#39;PROXIES.OBJ&#39;
  16. 线程&amp;线程控制
  17. js中的假值
  18. swift - UIImageView 的使用
  19. 关于anroid设置webview背景方法探讨(转)
  20. jsp error-page没有生效

热门文章

  1. 通过Tcode查找Badi或者客户出口
  2. EasyUI取消树节点选中
  3. maven引入dubbo包后启动报错
  4. file_get_contents函数
  5. Linux 面试的一些基础命令
  6. UVA:11297-Census(二维线段树)
  7. java模式及其应用场景
  8. Hyper-V:利用差异磁盘安装多个Win2008
  9. Python框架之Django的相册组件
  10. 【POJ 3764】The Xor-longest Path