一步一步写自己的SqlHelper类库
前言:
一開始不懂SqlHelper是什么,以為是新東西。第一遍大量的查資料,在csdn上找到很多人寫好的SqlHelper類,發(fā)現(xiàn)每個(gè)人寫的很像,但又都不一樣,找了一個(gè)能用的上的,敲了一遍別人的代碼,中間遇到很多不懂的語句,一點(diǎn)點(diǎn)的摳。整體下來,還是很朦朧!
后來,查到這個(gè)系列博客,打通了在SqlHelper的認(rèn)知全貌!
ADO.net是.NET?平臺(tái)的數(shù)據(jù)訪問編程模型。由于存在多種數(shù)據(jù)庫,為了能夠用統(tǒng)一訪問各種數(shù)據(jù)庫,出現(xiàn)ADO.Net
連接不同的數(shù)據(jù)庫,要引用對(duì)應(yīng)的類庫
每種對(duì)應(yīng)類庫中都有四個(gè)核心對(duì)象:很像老鼠偷玉米的過程
Connection:連接數(shù)據(jù)庫------------老鼠隊(duì)伍的先鋒部隊(duì)負(fù)責(zé)找到玉米地
Command:在數(shù)據(jù)庫中查詢----------老鼠隊(duì)伍的主力部隊(duì)負(fù)責(zé)將玉米棒子從植物上掰下來
DataAdapter:建立數(shù)據(jù)庫與顯示數(shù)據(jù)對(duì)象之間的橋梁-----------老鼠隊(duì)伍的運(yùn)輸部隊(duì)將玉米運(yùn)回洞里的糧倉里
DataSet:將數(shù)據(jù)拿出來放到用戶看的見的外觀空間里-----------老鼠隊(duì)伍的后勤部隊(duì)將糧倉里玉米做熟了分給各個(gè)小老鼠
增加了SQLhelper作用:將所有關(guān)于數(shù)據(jù)庫的操作單獨(dú)寫一個(gè)類中,在走不同的業(yè)務(wù)時(shí)都通過調(diào)用這個(gè)類來訪問數(shù)據(jù)庫,提高代碼的復(fù)用性。SQLhelper是一個(gè)組件!
在C#中有組件和控件
控件:可視化對(duì)象(比如用戶名的輸入框,密碼輸入框)--------控件的面對(duì)對(duì)象是人
組件:是對(duì)象,需要容器(比如SqlHelper類庫)-------------------組件的面對(duì)對(duì)象是編程中的代碼
編寫滿足機(jī)房用的SqlHelper類
namespace MySqlHelper
{/// <summary>/// SqlHelper create by zhaofen 2018-8-29/// </summary>class SqlHelper{private string strConn = null;private SqlConnection Conn = null;private SqlCommand Cmd = null;private SqlDataReader SqlSdr = null;public SqlHelper(){//利用反射連接數(shù)據(jù)庫strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;//strConn = "Data Source=Rancho; Initial Catalog=charge_sys;User Id=sa;Password=123456";Conn = new SqlConnection(strConn);}/// <summary>/// 打開數(shù)據(jù)庫/// </summary>/// <returns>sqlConnection</returns>private SqlConnection GetConn(){if (Conn.State != ConnectionState.Open){try{Conn.Open();}catch (Exception ex){Conn.Dispose();//沒有成功打開,釋放掉資源,不能不成功還占用資源throw new Exception("打開數(shù)據(jù)庫失敗!" + ex.Message);}}return Conn;}/// <summary>/// 執(zhí)行不帶參數(shù)的增刪改操作/// </summary>/// <param name="CmdText">執(zhí)行的SQL語句或存儲(chǔ)過程</param>/// <param name="CmdType">語句類型</param>/// <returns>返回增刪改的操作數(shù)</returns>public int ExecuteNonQuery(string CmdText,CommandType CmdType){//數(shù)據(jù)庫連接語句int res;try{Cmd = new SqlCommand(CmdText, GetConn());Cmd.CommandType = CmdType;res = Cmd.ExecuteNonQuery();}catch (Exception ex){throw ex;}finally{if (Conn.State==ConnectionState.Open){Conn.Close();}}return res;}/// <summary>/// 執(zhí)行帶參數(shù)的增刪改操作/// </summary>/// <param name="CmdText">執(zhí)行的SQL語句或存儲(chǔ)過程</param>/// <param name="parameters">參數(shù)</param>/// <param name="CmdType">(SQL語句或存儲(chǔ)過程)的類型</param>/// <returns>返回增刪改的操作數(shù)(受影響的行數(shù))</returns>public int ExecuteNonQuery(string CmdText,SqlParameter[] parameters,CommandType CmdType){int res;try{Cmd = new SqlCommand(CmdText, GetConn()); //先建立SQL語句Cmd.Parameters.AddRange(parameters); //再匹配參數(shù)Cmd.CommandType = CmdType;res = Cmd.ExecuteNonQuery();}catch (Exception ex){throw ex;}finally{if (Conn.State == ConnectionState.Open){Conn.Close();}}return res;}/// <summary>/// 執(zhí)行不帶參數(shù)的查詢操作/// </summary>/// <param name="CmdText">執(zhí)行的SQL語句或存儲(chǔ)過程</param>/// <param name="CmdType">(SQL語句或存儲(chǔ)過程)類型</param>/// <returns>查詢后的數(shù)據(jù)</returns>public DataTable ExecuteQuery(string CmdText,CommandType CmdType){DataTable dt = new DataTable();using (SqlSdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection)){Cmd = new SqlCommand(CmdText, GetConn());Cmd.CommandType = CmdType;dt.Load(SqlSdr);}return dt;}/// <summary>/// 執(zhí)行帶參數(shù)的查詢/// </summary>/// <param name="CmdText">執(zhí)行的SQL語句或存儲(chǔ)過程</param>/// <param name="parameters">(SQL語句或存儲(chǔ)過程)類型</param>/// <param name="CmdType"></param>/// <returns>查詢后的數(shù)據(jù)</returns>public DataTable ExecuteQuery(string CmdText,SqlParameter[] parameters, CommandType CmdType){DataTable dt = new DataTable();using (SqlSdr=Cmd.ExecuteReader(CommandBehavior.CloseConnection)){Cmd = new SqlCommand(CmdText, GetConn());Cmd.Parameters.AddRange(parameters);Cmd.CommandType = CmdType;dt.Load(SqlSdr);}return dt;}}
}
參考資料
一步步寫自己SqlHelper類庫(一):ADO.NET簡(jiǎn)介
一步步寫自己SqlHelper類庫(二):.NET Framework 數(shù)據(jù)提供程序
一步步寫自己SqlHelper類庫(三):連接字符串
一步步寫自己SqlHelper類庫(四):Connection對(duì)象
一步步寫自己SqlHelper類庫(五):Command對(duì)象
一步步寫自己SqlHelper類庫(六):DataAdapter對(duì)象
一步步寫自己SqlHelper類庫(七):DataSet對(duì)象
ADO.NET(完整修改和查詢、實(shí)體類,數(shù)據(jù)訪問類)
總結(jié)
以上是生活随笔為你收集整理的一步一步写自己的SqlHelper类库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构】查找
- 下一篇: System.Data.SqlClien