牛腩之SQLHelper

来源:互联网 发布:自制漫画软件下载 编辑:程序博客网 时间:2024/06/05 11:07

我看完牛腩之后明白了SQLHelper是如何去写的,通过些小小的分享,希望能给你帮助!!!


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;//添加命名空间using System.Data.SqlClient;//添加命名空间using System.Configuration;//添加命名空间namespace DAL    {        public class SQLHelper        {            private SqlConnection conn = null;            private SqlCommand cmd = null;            private SqlDataReader sdr = null;        /// <summary>        /// 连接配置文件        /// 通过配置文件连接数据库,建立数据库连接        /// ConfigurationManager添加引用,导入命名空间        /// </summary>        public SQLHelper()            {                string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;                conn = new SqlConnection(connStr);            }          /// <summary>          /// 判断数据库连接是否打开          /// 如果没有打开,就打开,如果打开就直接返回          /// </summary>          /// <returns></returns>            private SqlConnection GetConn()            {                if (conn.State == ConnectionState.Closed)                {                    conn.Open();                }                return conn;            }            /// <summary>            ///  执行不带参数的增删改SQL语句或存储过程            /// </summary>            /// <param name="cmdText">增删改SQL语句或存储过程</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//无论try和catch那个执行,finally都会执行                {                    if (conn.State == ConnectionState.Open)                    {                        conn.Close();                    }                }                return res;            }            /// <summary>            ///  执行带参数的增删改SQL语句或存储过程            /// </summary>            /// <param name="cmdText">增删改SQL语句或存储过程</param>            /// <param name="ct">命令类型</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="cmdText">查询SQL语句或存储过程</param>            /// <param name="ct">命令类型</param>            /// <returns></returns>            public DataTable ExecuteQuery(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">查询SQL语句或存储过程</param>            /// <param name="paras">参数集合</param>            /// <param name="ct">命令类型</param>            /// <returns></returns>            public DataTable ExecuteQuery(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;            }        }    }