C# 封裝SqlHelper

来源:https://www.cnblogs.com/xueyubao/archive/2019/08/23/11402945.html

老師在講C#實戰項目時所使用的SqlHelper,使用的資料庫時SQL Server ...


老師在講C#實戰項目時所使用的SqlHelper,使用的資料庫時SQL Server

註意,連接資料庫的連接字元串需要在配置文件中設置好

<appSettings>
    <add key = "connString" value="data source = .; database = CourseSelectionInfo; integrated security = true"/>
</appSettings>
public class SqLHelper
{
    #region 連接字元串connString
    private static string connString;
    static DBHelper()
    {
        connString = ConfigurationManager.AppSettings["connString"];
    }
    #endregion

    #region 增刪改int ExcuteNonQuery(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    /// <summary>
    /// 增刪改
    /// </summary>
    /// <param name="cmdText">sql</param>
    /// <param name="cmdType"></param>
    /// <param name="parameters">參數</param>
    /// <returns>修改了幾行</returns>
    public static int ExcuteNonQuery(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    {
        using (SqlConnection connection = new SqlConnection(connString))
        {
            using (SqlCommand cmd = new SqlCommand(cmdText, connection))
            {
                cmd.CommandType = cmdType;
                connection.Open();
                if (parameters.Length > 0)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                return cmd.ExecuteNonQuery();
            }
        }
    }
    #endregion

    #region 獲取一個數據 T ExcuteScalar<T>(string cmdText,  CommandType cmdType, params SqlParameter[] parameters)
    /// <summary>
    /// 獲取一個數據<T>
    /// </summary>
    /// <typeparam name="T">數據類型</typeparam>
    /// <param name="cmdText">sql</param>
    /// <param name="cmdType"></param>
    /// <param name="parameters">參數</param>
    /// <returns>任意類型的數據</returns>
    public static T ExcuteScalar<T>(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    {
        using (SqlConnection connection = new SqlConnection(connString))
        {
            using (SqlCommand cmd = new SqlCommand(cmdText, connection))
            {
                cmd.CommandType = cmdType;
                connection.Open();
                if (parameters.Length > 0)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                return (T)cmd.ExecuteScalar();
            }
        }
    }
    #endregion

    #region 讀取數據表SqlDataReader ExcuteReader(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    /// <summary>
    /// 讀取數據表
    /// </summary>
    /// <param name="cmdText">sql</param>
    /// <param name="cmdType"></param>
    /// <param name="parameters">參數</param>
    /// <returns>SqlDataReader</returns>
    public static SqlDataReader ExcuteReader(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    {
        SqlConnection connection = new SqlConnection(connString);
            using (SqlCommand cmd = new SqlCommand(cmdText, connection))
            {
                cmd.CommandType = cmdType;
                connection.Open();
                if (parameters.Length > 0)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
    }
    #endregion

    #region 臨時資料庫DataSet GetDataSet(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    /// <summary>
    /// 獲取臨時資料庫
    /// </summary>
    /// <param name="cmdText"></param>
    /// <param name="cmdType"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public static DataSet GetDataSet(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    {
        DataSet ds = new DataSet();
        using (SqlConnection connection = new SqlConnection(connString))
        {
            using (SqlCommand cmd = new SqlCommand(cmdText, connection))
            {
                cmd.CommandType = cmdType;
                using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                {
                    if (parameters.Length > 0)
                    {
                        adapter.SelectCommand.Parameters.AddRange(parameters);
                    }
                    adapter.Fill(ds);
                }
            }
        }
        return ds;
    }
    #endregion

    #region 臨時數據表DataTable GetDataTable(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    /// <summary>
    /// 獲取臨時數據表
    /// </summary>
    /// <param name="cmdText">sql</param>
    /// <param name="cmdType"></param>
    /// <param name="parameters">參數</param>
    /// <returns></returns>
    public static DataTable GetDataTable(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
    {
        return GetDataSet(cmdText, cmdType, parameters).Tables[0];
    }
    #endregion
}

您的分享是我們最大的動力!

更多相關文章
  • 0x00.問題 netcoreapp2.2環境下, Startup.cs 代碼配置如下 運行輸出警告:“ConsoleLoggerExtensions.AddConsole(ILoggerFactory)”已過時:“This method is obsolete and will be remove ...
  • shanzm 2019年8月23日 19:59:46 [TOC] 1. 可空類型修飾符(T?) 強類型語言中引用類型可以為空,如: 而你若是定義一個值類型為空,則是會報錯的。 然而,在處理資料庫和其他包含可能未賦值的元素的數據類型時,我們希望可以將 null 賦值給數值類型或布爾型的功能特別有用。例 ...
  • 恢復內容開始 PCM音頻網路流播放,至於用處,就不多解釋了。 一個簡單的類,基於NAudio,一個簡單的拼裝類,實例化時三個參數,依次是採樣率,系統播放設備Index,播放聲道,調用PlayData方法傳入PCM的音頻流即可,有流就傳進去,數據斷了,播放自動停。 接下來把代碼貼出來: 1 publi ...
  • 解決步驟 1.刪除對應項目下的 obj 文件夾 2.重新生成該項目 ...
  • C# 數據類型 在 C# 中,變數分為以下幾種類型: 值類型(Value types) 引用類型(Reference types) 指針類型(Pointer types) 在 C# 中,變數分為以下幾種類型: 值類型(Value types) 引用類型(Reference types) 指針類型(P ...
一周排行
  • 一、背景 代碼實例:https://gitee.com/D_C_L/CurtainEtcAOP.git我們實際系統中有很多操作,是不管做多少次,都應該產生一樣的效果或返回一樣的結果。 例如: 1. 前端重覆提交選中的數據,應該後臺只產生對應這個數據的一個反應結果。 2. 我們發起一筆付款請求,應該只 ...
  • 關鍵字:流程未來節點處理人 工作流快速開發平臺 工作流流設計 業務流程管理 asp.net 開源工作流 業務背景:一個流程在啟動起來後,是可以對一些節點計算出來處理人是誰,流程的走向。對於另外一些節點處理人有可能需要相關的人員調整的。在一些審批的環境下,需要把能夠計算出來的節點處理人在發起時計算出來... ...
  • 簡述 我們做軟體工作的雖然每天都離不開網路,可網路協議細節卻不是每個人都會接觸和深入瞭解。我今天就來和大家一起學習下Socket,並寫一個簡單的聊天程式。 一些基礎類 首先我們每天打開瀏覽器訪問網頁信息都是使用的HTTP/HTTPS協議,而HTTP是通過的TCP建立的連接。TCP底層又是通過的Soc ...
  • 點這裡進入ABP進階教程目錄 在功能按鈕區增加一個自定義按鈕 - Add(創建課程) 添加按鈕 打開展示層(即JD.CRS.Web.Mvc)的\wwwroot\view-resources\Views\Course\Index.js //用以存放Course查詢相關腳本 自帶按鈕已有五個我們再添加一 ...
  • 點這裡進入ABP進階教程目錄 我們嘗試在新增/編輯界面增加一個下拉框用來代替輸入框編輯Status 添加實體 打開領域層(即JD.CRS.Core)的Entitys目錄 //用以存放實體對象添加一個類StatusCode.cs //狀態信息 更新模型 更新查詢視圖模型 打開展示層(即JD.CRS.W ...
  • 在項目視圖中,找到-》輸出 視窗,在視窗中選擇ASP.NET Core Web伺服器,調試項目即可看到執行的sql語句 ...
  • 前言: 通過Fiddler抓取瀏覽器請求數據,相信大家已經都會用了,我們知道Fiddler是通過在本機計算器添加一個預設的代理伺服器來實現的抓包數據的,埠號為:8888。 其實當我們打開Fiddler的設置也可以看到: 然後查看本地計算器的網路代理設置: 基於上面的原理,Fiddler就實現了經過 ...
  • 場景 Winform控制項-DevExpress18下載安裝註冊以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243 在上面已經實現DevExpress的安裝之後,拖拽一個TreeList,然後怎樣給 ...
  • 場景 Winform控制項-DevExpress18下載安裝註冊以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243 DevExpress的TreeList怎樣設置數據源,從實例入手: https:/ ...
  • 場景 在開發中,經常會有一些全局作用域的常量、欄位、屬性、方法等。 需要將這些設置為全局作用域保存且其實例唯一。 註: 博客主頁: https://blog.csdn.net/badao_liumang_qizhi 關註公眾號 霸道的程式猿 獲取編程相關電子書、教程推送與免費下載。 實現 首先新建一 ...
x