企业站点的架构(以Tohes的WebSite为样例) ----数据访问层

AccessHelper 类

 

  1. namespace DataAccess
  2. {
  3.     public class AccessHelper
  4.     {
  5.         private OleDbConnection conn;
  6.         private static readonly string OleDbConnectionString = ConfigurationManager.ConnectionStrings["OledbConnectionStrings"].ConnectionString;
  7.         /// <summary>
  8.         /// OleDb 数据库访问助手
  9.         /// </summary>
  10.         public AccessHelper()
  11.         {
  12.             this.conn = new OleDbConnection(OleDbConnectionString);
  13.         }
  14.         /// <summary>
  15.         /// 打开链接对象
  16.         /// </summary>
  17.         private void ConnOpen()
  18.         {
  19.             if (this.conn.State == ConnectionState.Closed)
  20.             {
  21.                 this.conn.Open();
  22.             }
  23.         }
  24.         /// <summary>
  25.         /// 关闭链接对象
  26.         /// </summary>
  27.         private void ConnClose()
  28.         {
  29.             if (this.conn.State == ConnectionState.Open)
  30.             {
  31.                 this.conn.Close();
  32.             }
  33.         }
  34.         /// <summary>
  35.         /// 释放链接对象资源
  36.         /// </summary>
  37.         public void Dispose()
  38.         {
  39.             this.conn.Close();
  40.             this.conn.Dispose();
  41.             this.conn = null;
  42.         }
  43.         #region 执行成员
  44.         /// <summary>
  45.         /// 操作 OleDb 数据库并返回影响行。
  46.         /// </summary>
  47.         /// <param name="cmd">命令对象</param>
  48.         /// <returns>影响行</returns>
  49.         public int ExecuteNonQuery(OleDbCommand cmd)
  50.         {
  51.             int val;
  52.             cmd.Connection = this.conn;
  53.             ConnOpen();
  54.             try
  55.             {
  56.                 val = cmd.ExecuteNonQuery();
  57.             }
  58.             catch
  59.             {
  60.                 throw;
  61.             }
  62.             finally
  63.             {
  64.                 cmd.Parameters.Clear();
  65.                 this.Dispose();
  66.             }
  67.             return val;
  68.         }
  69.         /// <summary>
  70.         /// 操作 OleDb 数据库并返回影响行。(支持事务处理)
  71.         /// </summary>
  72.         /// <param name="cmd">多个命令对象</param>
  73.         /// <returns>最后命令对象影响行</returns>
  74.         public int ExecuteNonQuery(OleDbCommand[] cmd)
  75.         {
  76.             int val;
  77.             ConnOpen();
  78.             OleDbTransaction sqlts = this.conn.BeginTransaction();
  79.             try
  80.             {
  81.                 for (int i = 0; i < cmd.Length; i++)
  82.                 {
  83.                     cmd[i].Connection = this.conn;
  84.                     cmd[i].Transaction = sqlts;
  85.                     cmd[i].ExecuteNonQuery();
  86.                     cmd[i].Parameters.Clear();
  87.                 }
  88.                 sqlts.Commit();
  89.                 val = 1;
  90.             }
  91.             catch
  92.             {
  93.                 sqlts.Rollback();
  94.                 throw;
  95.             }
  96.             finally
  97.             {
  98.                 this.Dispose();
  99.             }
  100.             return val;
  101.         }
  102.         /// <summary>
  103.         /// 操作 OleDb 数据库并返回影响行。
  104.         /// </summary>
  105.         /// <param name="sqlstr">SQL 语句</param>
  106.         /// <returns>影响行</returns>
  107.         public int ExecuteNonQuery(string sqlstr)
  108.         {
  109.             int val;
  110.             OleDbCommand cmd = new OleDbCommand(sqlstr, this.conn);
  111.             this.conn.Open();
  112.             try
  113.             {
  114.                 val = cmd.ExecuteNonQuery();
  115.             }
  116.             catch
  117.             {
  118.                 throw;
  119.             }
  120.             finally
  121.             {
  122.                 this.Dispose();
  123.             }
  124.             return val;
  125.         }
  126.         /// <summary>
  127.         /// 操作 OleDb 数据库并返回第一行第一列数据。
  128.         /// </summary>
  129.         /// <param name="cmd">命令对象</param>
  130.         /// <returns>第一行第一列数据</returns>
  131.         public object ExecuteScalar(OleDbCommand cmd)
  132.         {
  133.             object val;
  134.             cmd.Connection = this.conn;
  135.             ConnOpen();
  136.             try
  137.             {
  138.                 val = cmd.ExecuteScalar();
  139.             }
  140.             catch
  141.             {
  142.                 throw;
  143.             }
  144.             finally
  145.             {
  146.                 cmd.Parameters.Clear();
  147.                 this.Dispose();
  148.             }
  149.             return val;
  150.         }
  151.         /// <summary>
  152.         /// 操作 OleDb 数据库并返回第一行第一列数据。
  153.         /// </summary>
  154.         /// <param name="sqlstr">SQL 语句</param>
  155.         /// <returns>第一行第一列数据</returns>
  156.         public object ExecuteScalar(string sqlstr)
  157.         {
  158.             object val;
  159.             OleDbCommand cmd = new OleDbCommand(sqlstr, this.conn);
  160.             this.conn.Open();
  161.             try
  162.             {
  163.                 val = cmd.ExecuteScalar();
  164.             }
  165.             catch
  166.             {
  167.                 throw;
  168.             }
  169.             finally
  170.             {
  171.                 this.Dispose();
  172.             }
  173.             return val;
  174.         }
  175.         /// <summary>
  176.         /// 操作 OleDb 数据库返回只向前数据流(需要手动关闭流)。
  177.         /// </summary>
  178.         /// <param name="cmd">命令对象</param>
  179.         /// <returns>只向前数据流</returns>
  180.         public OleDbDataReader ExecuteReader(OleDbCommand cmd)
  181.         {
  182.             OleDbDataReader val;
  183.             cmd.Connection = this.conn;
  184.             ConnOpen();
  185.             try
  186.             {
  187.                 val = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  188.             }
  189.             catch
  190.             {
  191.                 cmd.Parameters.Clear();
  192.                 this.Dispose();
  193.                 throw;
  194.             }
  195.             return val;
  196.         }
  197.         /// <summary>
  198.         /// 操作 OleDb 数据库返回只向前数据流(需要手动关闭流)。
  199.         /// </summary>
  200.         /// <param name="sqlstr">SQL 语句</param>
  201.         /// <returns>只向前数据流</returns>
  202.         public OleDbDataReader ExecuteReader(string sqlstr)
  203.         {
  204.             OleDbDataReader val;
  205.             OleDbCommand cmd = new OleDbCommand(sqlstr, this.conn);
  206.             ConnOpen();
  207.             try
  208.             {
  209.                 val = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  210.             }
  211.             catch
  212.             {
  213.                 this.Dispose();
  214.                 throw;
  215.             }
  216.             return val;
  217.         }
  218.         /// <summary>
  219.         /// 操作 OleDb 数据库返回已填充的数据集。
  220.         /// </summary>
  221.         /// <param name="cmd">命令对象</param>
  222.         /// <returns>已填充的数据集</returns>
  223.         public DataSet ExecuteDataSet(OleDbCommand cmd)
  224.         {
  225.             cmd.Connection = this.conn;
  226.             OleDbDataAdapter da = new OleDbDataAdapter(cmd);
  227.             DataSet ds = new DataSet();
  228.             try
  229.             {
  230.                 da.Fill(ds);
  231.             }
  232.             catch
  233.             {
  234.                 throw;
  235.             }
  236.             finally
  237.             {
  238.                 da.Dispose();
  239.                 cmd.Parameters.Clear();
  240.                 this.Dispose();
  241.             }
  242.             return ds;
  243.         }
  244.         /// <summary>
  245.         /// 操作 OleDb 数据库返回已填充的数据集。
  246.         /// </summary>
  247.         /// <param name="sqlstr">SQL 语句</param>
  248.         /// <returns>已填充的数据集</returns>
  249.         public DataSet ExecuteDataSet(string sqlstr)
  250.         {
  251.             OleDbCommand cmd = new OleDbCommand(sqlstr, this.conn);
  252.             OleDbDataAdapter da = new OleDbDataAdapter(cmd);
  253.             DataSet ds = new DataSet();
  254.             try
  255.             {
  256.                 da.Fill(ds);
  257.             }
  258.             catch
  259.             {
  260.                 throw;
  261.             }
  262.             finally
  263.             {
  264.                 da.Dispose();
  265.                 cmd.Parameters.Clear();
  266.                 this.Dispose();
  267.             }
  268.             return ds;
  269.         }
  270.         #endregion
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值