代码改变世界

SqlHelper V1.0 (C#)

2011-12-07 08:28  javaspring  阅读(186)  评论(0编辑  收藏  举报
/// <summary>
/// Depiction:数据库助手类V1.0
/// Author:贾琳
/// Create Date: 2011/12/2 9:47:48
/// </summary>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace SqlHelper
{
    public sealed class SqlHelper
    {
        //静态初始化Sqlhelper
        private static readonly SqlHelper instance = new SqlHelper();

        private SqlCommand cmd = null;
        private SqlConnection con = null;
        private SqlDataReader sdr = null;
        #region 静态构造方法,防止new实例化
        /// <summary>
        /// 静态构造方法,防止new实例化
        /// </summary>
        private SqlHelper()
        {
            string strConn = ConfigurationManager.ConnectionStrings["ConnectString"].ConnectionString;
            con = new SqlConnection(strConn);
        }
        #endregion
        
        #region 获取Sqlhelper实例的方法
        /// <summary>
        /// 获取Sqlhelper实例的方法
        /// </summary>
        /// <returns>2011年12月2日 By 贾琳</returns>
        public static SqlHelper GetInstance()
        {
            return instance;
        }
        #endregion
        
        #region 获得数据库连接
        /// <summary>
        /// 获得数据库连接
        /// </summary>
        /// <returns>2011年12月2日 By 贾琳</returns>
        private SqlConnection GetCnn()
        {
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }
            return con;
        }
        #endregion
        
        #region 执行带参数的增删改命令
        /// <summary>
        /// 执行带参数的增删改命令
        /// </summary>
        /// <param name="cmmText">Sql语句或存储过程</param>
        /// <param name="para">参数集合</param>
        /// <param name="cmmType">命令类型</param>
        /// <returns>2011年12月2日 By 贾琳</returns>
        public int ExecuteNonQuery(string cmmText, SqlParameter[] para, CommandType cmmType)
        {

            using (cmd = new SqlCommand(cmmText, GetCnn()))
            {
                cmd.CommandType = cmmType;
                cmd.Parameters.AddRange(para);
                return cmd.ExecuteNonQuery();
            }

        }
        #endregion

        #region 执行不带参数的增删改命令
        /// <summary>
        ///   执行不带参数的增删改命令
        /// </summary>
        /// <param name="cmmText">Sql语句或存储过程</param>
        /// <param name="cmmType">命令类型</param>
        /// <returns>2011年12月2日 By 贾琳</returns>
        public int ExecuteNonQuery(string cmmText, CommandType cmmType)
        {
            using (cmd = new SqlCommand(cmmText, GetCnn()))
            {
                cmd.CommandType = cmmType;
                return cmd.ExecuteNonQuery();
            }
        }

        #endregion
        #region 执行带参数的查询命令
        /// <summary>
        /// 执行带参数的查询命令
        /// </summary>
        /// <param name="cmmText">Sql语句或存储过程</param>
        /// <param name="para">参数集合</param>
        /// <param name="cmmType">命令类型</param>
        /// <returns>2011年12月2日 By 贾琳</returns>
        public DataTable ExecuteQuery(string cmmText, SqlParameter[] para, CommandType cmmType)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmmText, GetCnn());
            cmd.CommandType = cmmType;
            cmd.Parameters.AddRange(para);
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
                return dt;
            }
        }
        #endregion 
        
        #region 执行不带参数的查询命令
        /// <summary>
        /// 执行不带参数的查询命令
        /// </summary>
        /// <param name="cmmText">Sql语句或存储过程</param>
        /// <param name="cmmType">命令类型</param>
        /// <returns>2011年12月2日 By 贾琳</returns>
        public DataTable ExecuteQuery(string cmmText, CommandType cmmType)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmmText, GetCnn());
            cmd.CommandType = cmmType;
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
                return dt;
            }
        }

        #endregion
       
    }
}

建立自己的代码库,从SqlHelper  V1.0开始!!!!