黑馬程序員_DbHelper類庫

“----------ASP.Net+Android+IOS開發、Net培訓、期待與您交流!----------”

 

 
 public   class DBHelper
    {
        /// <summary>
        /// 連接字符串
        /// </summary>
        public string CmdConStr { get; set; }
        /// <summary>
        /// 存儲過程名
        /// </summary>
        public string CmdProStr { get; set; }
        /// <summary>
        /// 傳入參數new SqlParameter[] {new SqlParameter("@存儲過程參數",參數)};
        /// </summary>
        public SqlParameter[] CmdPar { get; set; }
        private  SqlConnection con = new SqlConnection();
        private SqlCommand cmd = new SqlCommand() { CommandType = CommandType.StoredProcedure };
        private SqlDataReader dr;
        /// <summary>
        /// 返回遍歷需要的DR
        /// </summary>
        protected SqlDataReader Dr
        {
            get {
                if (dr==null)
                {
                    this.GetdataReader();
                }
                return dr; }
      
        }
        private bool isExecuteNonQuery;
        /// <summary>
        /// 返回增改刪的BOOL值
        /// </summary>
        protected bool IsExecuteNonQuery
        {
            get
            {
                this.GetExecuteNonQuery(); 
                return isExecuteNonQuery; }
           
        }
        private bool isExecuteScalar;
        /// <summary>
        /// 返回登陸判斷的BOOL或只需要一個判斷時 SQL語句列名改成1 比如: select 1 from 表 where 列=列
        /// </summary>
        protected bool IsExecuteScalar
        {
            get
            {
                this.GetExecuteScalar(); 
                return isExecuteScalar; }
           
        }
        /// <summary>
        /// 返回遍歷需要的DR
        /// </summary>
        /// <param name="constring">連接字符串</param>
        /// <param name="protrct">存儲過程名</param>
        /// <param name="par">參數數組寫法 new SqlParameter[]{ new SqlParameter("@存儲過程參數名",參數)}</param>
        /// <returns></returns>
        private void GetdataReader()
        {

            con.ConnectionString = ConfigurationManager.ConnectionStrings[CmdConStr].ToString();
            if (con.State != ConnectionState.Open || con.State == ConnectionState.Broken)
            {
                dr = null;
                con.Close();
                con.Open();
            }
            cmd.Connection = con;
            cmd.CommandText = CmdProStr;
            if (CmdPar != null)
            {
                cmd.Parameters.AddRange(this.CmdPar);
            }
            dr = cmd.ExecuteReader();
        }
        /// <summary>
        /// 返回增改刪的BOOL值
        /// </summary>
        /// <param name="constring">連接字符串</param>
        /// <param name="protrct">存儲過程名</param>
        /// <param name="par">參數數組寫法 new SqlParameter[]{ new SqlParameter("@存儲過程參數名",參數)}</param>
        /// <returns></returns>
        private void GetExecuteNonQuery()
        {
            con.ConnectionString = ConfigurationManager.ConnectionStrings[CmdConStr].ToString();
            if (con.State != ConnectionState.Open || con.State == ConnectionState.Broken)
            {

                con.Close();
                con.Open();

            }
            cmd.Connection = con;
            cmd.CommandText = CmdProStr;
            if (CmdPar != null)
            {
                cmd.Parameters.AddRange(CmdPar);
            }
            int i = cmd.ExecuteNonQuery();
            if (i > 0)
            {
                isExecuteNonQuery= true;
                return;
            }
            isExecuteNonQuery=false;
        }

        /// <summary>
        /// 返回登陸判斷的BOOL或只需要一個判斷時 SQL語句列名改成1 比如: select 1 from 表 where 列=列
        /// </summary>
        /// <param name="constring">連接字符串</param>
        /// <param name="protrct">存儲過程名</param>
        /// <param name="par">參數數組寫法 new SqlParameter[]{ new SqlParameter("@存儲過程參數名",參數)}</param>

        private void GetExecuteScalar()
        {
            con.ConnectionString = ConfigurationManager.ConnectionStrings[CmdConStr].ToString();
            if (con.State != ConnectionState.Open || con.State == ConnectionState.Broken)
            {

                con.Close();
                con.Open();

            }
            cmd.Connection = con;
            cmd.CommandText = CmdProStr;
            if (CmdPar != null)
            {
                cmd.Parameters.AddRange(CmdPar);
            }
            int i = Convert.ToInt32(cmd.ExecuteScalar());
            if (i > 0)
            {
                isExecuteScalar= true;
                return;
            }
            isExecuteScalar= false;
        }
    }




 

發佈了87 篇原創文章 · 獲贊 6 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章