本文小編為大家詳細介紹“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類”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。