91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#怎么封裝DBHelper類

發布時間:2022-05-05 09:28:32 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“C#怎么封裝DBHelper類”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C#怎么封裝DBHelper類”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

DBHelper從字面上理解為“數據庫幫助類”,由于持久層需要與數據庫進行交互,因此每次交互的時候都會重復去加載驅動、填寫數據庫連接信息、建立(獲取)數據庫連接、關閉數據庫,所以導致代碼中出現了大量的冗余代碼,因此把這些重復需要執行的代碼抽取出來,就成了一個DBHelper,一個簡單的DBHelper提供了最基礎的數據庫初始化連接及驅動,提供了連接數據庫的API和關閉數據庫的API,通常的做法是把這些API做成靜態的,使用的時候直接通過 類.API 進行調用,因此大量的簡化了代碼的書寫,提高了代碼的可維護性,同時也利于更換數據庫及驅動。

詳細代碼:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApplication1
{
    class DBHelper
    {
        //SQL連接字符串-SQL身份認證方式登錄
        public static string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456;";

        //SQL連接字符串-Windows身份認證方式登錄
        //public static string connStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.";

        //讀取配置文件appSettings節點讀取字符串(需要添加引用System.Configuration)
        //public static string connStr = ConfigurationManager.AppSettings["DefaultConn"].ToString();
        //對應的配置文件如下:
        //<appSettings>
        //  <add key="DefaultConn" value="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=."/>
        //</appSettings>

        //讀取配置文件ConnectionStrings節點讀取字符串(需要添加引用System.Configuration)
        //public static string connStr = ConfigurationManager.ConnectionStrings["DefaultConn"].ConnectionString;
        //對應配置文件如下:
        //<connectionStrings>
        //    <add name="DefaultConn" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=."/>
        //</connectionStrings>

        public static SqlConnection conn = null;
        public static SqlDataAdapter adp = null;

        #region 連接數據庫
        /// <summary>
        /// 連接數據庫
        /// </summary>
        public static void OpenConn()
        {
            if (conn == null)
            {
                conn = new SqlConnection(connStr);
                conn.Open();
            }
            if (conn.State == System.Data.ConnectionState.Closed)
            {
                conn.Open();
            }
            if (conn.State == System.Data.ConnectionState.Broken)
            {
                conn.Close();
                conn.Open();
            }
        }
        #endregion

        #region 執行SQL語句前準備
        /// <summary>
        /// 準備執行一個SQL語句
        /// </summary>
        /// <param name="sql">需要執行的SQL語句</param>
        public static void PrepareSql(string sql)
        {
            OpenConn(); //打開數據庫連接
            adp = new SqlDataAdapter(sql, conn);
        }
        #endregion

        #region 設置和獲取sql語句的參數
        /// <summary>
        /// 設置傳入參數
        /// </summary>
        /// <param name="parameterName">參數名稱</param>
        /// <param name="parameterValue">參數值</param>
        public static void SetParameter(string parameterName, object parameterValue)
        {
            parameterName = "@" + parameterName.Trim();
            if (parameterValue == null)
                parameterValue = DBNull.Value;
            adp.SelectCommand.Parameters.Add(new SqlParameter(parameterName, parameterValue));
        }
        #endregion

        #region 執行SQL語句
        /// <summary>
        /// 執行非查詢SQL語句
        /// </summary>
        /// <returns>受影響行數</returns>
        public static int ExecNonQuery()
        {
            int result = adp.SelectCommand.ExecuteNonQuery();
            conn.Close();
            return result;
        }
        /// <summary>
        /// 執行查詢SQL語句
        /// </summary>
        /// <returns>DataTable類型查詢結果</returns>
        public static DataTable ExecQuery()
        {
            DataTable dt = new DataTable();
            adp.Fill(dt);
            conn.Close();
            return dt;
        }
        /// <summary>
        /// 執行查詢SQL語句
        /// </summary>
        /// <returns>SqlDataReader類型查詢結果,SqlDataReader需要手動關閉</returns>
        public static SqlDataReader ExecDataReader()
        {
            return adp.SelectCommand.ExecuteReader(CommandBehavior.CloseConnection);
        }
        /// <summary>
        /// 執行查詢SQL語句
        /// </summary>
        /// <returns>查詢結果第一行第一列</returns>
        public static object ExecScalar()
        {
            object obj = adp.SelectCommand.ExecuteScalar();
            conn.Close();
            return obj;
        }
        #endregion
    }
}

讀到這里,這篇“C#怎么封裝DBHelper類”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

米林县| 林州市| 正阳县| 灵宝市| 西吉县| 永吉县| 合川市| 舟曲县| 尼木县| 延津县| 富蕴县| 西华县| 衡水市| 桑植县| 沾益县| 额尔古纳市| 衡阳县| 乡城县| 鹿泉市| 丹阳市| 山东省| 灌阳县| 河源市| 白水县| 旬阳县| 东乡族自治县| 扎鲁特旗| 石台县| 五寨县| 东光县| 隆德县| 盐源县| 招远市| 平遥县| 百色市| 黄浦区| 五家渠市| 靖远县| 兴义市| 尚志市| 固安县|