首頁  >  文章  >  後端開發  >  sqlhelper類別是什麼

sqlhelper類別是什麼

(*-*)浩
(*-*)浩原創
2019-05-10 16:05:315891瀏覽

sqlhelper類別是指一個基於「.NET Framework」的資料庫操作元件,元件中包含資料庫操作方法;SqlHelper用來簡化你重複的去寫那些資料庫連接SqlCommand或SqlDataReader等等。

sqlhelper類別是什麼

SqlHelper是基於.NET Framework的資料庫操作元件。組件中包含資料庫操作方法。 SqlHelper用來簡化你重複的去寫那些資料庫連線(SqlConnection),SqlCommand,SqlDataReader等等。 SqlHelper 封裝過後通常是只需要給方法傳入一些參數如資料庫連接字串,SQL參數等,就可以存取資料庫了,很方便。

推薦課程:C#教學

SQLHelper.cs檔案中包含了兩個類,分別是SqlHelper和SqlHelperParameterCache。

//
public sealed class SqlHelper{}
public sealed class SqlHelperParameterCache{}

這兩個類前面都用了sealed修飾符來修飾,表示其是一個密封類,不能作為基類,不能為其他類所繼承。

SqlHelper 類別提供了一組靜態方法,可以用來向 SQL Server 資料庫發出許多各種不同類型的命令。

SqlHelperParameterCache 類別提供指令參數快取功能,可以用來提升效能。這個類別由許多 Execute 方法(尤其是那些只運行預存程序的重寫方法)在內部使用。資料存取客戶端也可以直接使用它來快取特定命令的特定參數集。

這次我們把SqlHelperParameterCache先放到一邊,來分析SqlHelper類別。

方法

SqlHelper

私有方法有四個,AssignParameterValues方法有一個重載:

AttachParameters:新增參數數組到指定的SqlCommand中 

AssignParameterValues:為SqlParameters(參數)陣列賦值 

PrepareCommand:用於對SqlCommand(指令)的屬性(如連線、交易環境等)進行初始化。

公有方法有十三個:這當中每個查詢資料庫的方法用到了大量的重載,每個方法用到了八個左右的重載。

ExecuteNonQuery

此方法用於執行不傳回任何行或值的命令。這些命令通常用於執行資料庫更新,但也可用於傳回預存程序的輸出參數。

ExecuteDataset

此方法傳回DataSet對象,該物件包含由某一指令傳回的結果集。

ExecuteReader

此方法用於傳回SqlDataReader對象,該物件包含由某一指令傳回的結果集。

ExecuteScalar

此方法傳回一個值。該值始終是該命令傳回的第一行的第一列。

ExecuteXmlReader

此方法傳回 FOR XML 查詢的 XML 片段。

FillDataset

此方法將資料填入DataSet。

UpdateDataset

此方法用來執行向DataSet增、刪、改的指令。

CreateCommand

此方法用於建立SqlCommand。

分析

下面我們以ExecuteNonQuery()方法為例來分析下:

sqlhelper類別是什麼

我們上面看到的是ExecuteNonQuery()的九個重載方法,其中前三個是準備查詢,中間三個是執行查詢,後面三個則是用於SQL事務查詢。再細分,2-1執行的是無參數的SQL語句,而2-2執行的是包含參數數組的SQL語句(參數數組可以為空),2-3執行的則是無回傳值的預存程序。實際上,1-1和1-3重載是為了方便無參數的SQL語句,而1-3和2-3重載只是為了方便呼叫預存過程,他們的本質還是和1-2和2-2一樣。以下是針對重載方法的一些簡單使用。

下面我們會使用ExecuteNonQuery來執行帶有參數的SQL語句,可以透過F11來逐語句來檢視執行過程,會有助於我們理解SQLHelper類別的使用。

#region RegisterUser 注册用户
        /// <summary>
        /// 注册用户
        /// </summary>
        /// <param>userinfo实体
        /// <returns>注册成功返回True,失败返回False</returns>
        public bool RegisterUser(JFEntity.UserInfo userinfo)
        {
            string sql = @"INSERT INTO T_User VALUES(@userID,@userName,@userSex,@userPassword,@userLevel)";
            SqlParameter[] sqlparamter = new SqlParameter[] 
            {
                new SqlParameter("@userID", SqlDbType.Int),
                new SqlParameter("@userName", SqlDbType.Char,30),
                new SqlParameter("@userSex", SqlDbType.Char,6),
                new SqlParameter("@userPassword", SqlDbType.Char,16),
                new SqlParameter("@userLevel", SqlDbType.Char,8),
            };
            sqlparamter[0].Value = userinfo.userID;
            sqlparamter[1].Value = userinfo.userName;
            sqlparamter[2].Value = userinfo.userSex;
            sqlparamter[3].Value = userinfo.userPassword;
            sqlparamter[4].Value = userinfo.userLevel;
            int result = SqlHelper.ExecuteNonQuery(SqlHelper.connectionString, CommandType.Text, sql, sqlparamter);
            if (result != 0)
            {
                return true;//注册成功
            }
            else
            {
                return false;//注册失败
            }
        }
        #endregion

以上是sqlhelper類別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn