牛腩新聞發布系統(B/S)中的SQLHelper,牛腩新聞發布系統

來源:互聯網
上載者:User

牛腩新聞發布系統(B/S)中的SQLHelper,牛腩新聞發布系統

1.關於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 類來執行命令的模式,同時為開發人員選擇訪問資料的方式提供了必要的靈活性。每種方法的重載都支援不同的方法參數,因此開發人員可以確定傳遞串連、事務和參數資訊的方式。


2.在這裡主要說一下關於再次學習SQLHelper的感受:

在這次的B/S牛腩新聞發布系統的學習過程中,相對於C/S的學習中使用到的SQLHelper,略微有些不同,但很大部分還是和C/S的樣子。其中關於SQLHelper的使用主要還是串連資料庫的助手,執行SQL語句或預存程序。資料庫助手的應用主要還是為了方便開發人員的開發和應用,減少代碼量,以到達提高效率的作用。


/* * 建立人:吳士龍 * 建立時間:2015-07-15 17:12 * 說明:資料庫助手類 * 著作權:個人 */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;        public SQLHelper()        {            string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;            conn = new SqlConnection(connStr);        }        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            {                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;        }    }}

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.