亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

高尔夫| 十堰市| 南开区| 淮安市| 赣州市| 崇阳县| 文登市| 即墨市| 上饶县| 桦甸市| 贡嘎县| 清镇市| 兴安盟| 临桂县| 内丘县| 西华县| 松原市| 临高县| 漳州市| 永靖县| 瓦房店市| 沧源| 兰考县| 民丰县| 阿克| 吴桥县| 苍南县| 周宁县| 梁河县| 普兰县| 罗江县| 琼结县| 东兰县| 赤壁市| 瑞安市| 城市| 宝清县| 滦南县| 奎屯市| 丘北县| 永嘉县|