再回首—SQLhelper的编写

一、什么是SQLHelper

  SqlHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法,SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类,后面包含进了Enterprise Library开源包中了。还有一个主要版本是dbhelper.org开源的sqlhelper组件,优点是简洁,高性能,不仅仅支持sqlserver,同时支持sqlserver、oracle、access、Mysql数据库,也是一个开源项目,提供免费下载。

  SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。

  SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。

二、怎么写SQLhelper助手类

  SQLHelper分为四中情况:带参数的sql查询语句,带参数的增删改sql语句,不带参数的sql查询语句,sql增删改语句。看一下他们的代码(C#版) 

     ①  /// <summary>
        /// 执行不带参数的 增删改sql语句或存储过程
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="ct">命令类型</param>
        /// <returns></returns>
        public int ExecuteNonQuery(string cmdText, CommandType ct)
        {
            int res;
            try
            {
                cmd = new SqlCommand(cmdText , GetConn());
                cmd.CommandType = ct;
                res = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                { 
                               conn.Close();
                }
            }
            return res;
        }

        /// <summary>
        /// 执行带参数的SQL增删改语句
        /// </summary>
        /// <param name="sql">sql增删改语句</param>
        /// <param name="paras">参数集合</param>
        /// <returns></returns>
       
        public int ExecuteNonQuery(string cmdText,SqlParameter[] paras,CommandType ct)
        {
            int res;
            using (cmd = new SqlCommand(cmdText , GetConn())) 
            {
                cmd.CommandType = ct;
                cmd.Parameters.AddRange(paras);
                res =cmd.ExecuteNonQuery ();
            }
            return res;
        }
  
   ② /// <summary>
        /// 该方法执行查询传入的sql查询语句或存储过程
        /// </summary>
        /// <param name="sql">命令类型</param>
        /// <returns></returns>
        public DataTable ExecuteQurey(string cmdText, CommandType ct)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmdText, GetConn());
            cmd.CommandType = ct;
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }
     /// <summary>
     /// 执行带参数的SQL语句,或存储过程
     /// </summary>
     /// <param name="cmdText"></param>
     /// <param name="paras">sql查询语句</param></param>
     /// <param name="ct">命令类型</param>
     /// <returns></returns>
        public DataTable ExecuteQurey(string cmdText, SqlParameter[] paras,CommandType ct)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmdText , GetConn());
            cmd.CommandType = ct;
            cmd.Parameters.AddRange(paras);
            using (sdr = cmd.ExecuteReader(CommandBehavior .CloseConnection ))
            {
                dt.Load(sdr);
            }
            return dt;
        }

    }

三、总结

  前辈们的代码我们可以拿来直接用,但是我们必须知道该怎么用。C#版的sqlhelper就这么点东西。至于更深的用法,还希望大神赐教!如有错误欢迎指正,不胜感激。

你可能感兴趣的:(再回首—SQLhelper的编写)