當(dāng)前位置:
首頁 >
三层架构与四大天王之——查
發(fā)布時間:2025/3/15
22
豆豆
生活随笔
收集整理的這篇文章主要介紹了
三层架构与四大天王之——查
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ?上次我們說到了。怎樣利用三層架構(gòu)去數(shù)據(jù)庫中刪除數(shù)據(jù)。這次我們就來談?wù)勅绾稳?shù)據(jù)庫中查找數(shù)據(jù)。事實上在上篇文章中也涉及到了查找,但那是將整個表中的記錄都顯示出來,而我們這次來查找我們所須要的某一條記錄。
? 1、UI層
?首先是界面,還記得我們第一次加入的“王菲”的那條記錄嗎。今天我們就將它查出來
? ? 2、BLL層
public class QueryBLL{public Login.Model.UserInfo UserQuery(Login.Model.UserInfo user){//實例化D層UserQuery.DAL.QueryDAL UserQD = new UserQuery.DAL.QueryDAL();//實例化用戶Login.Model.UserInfo User = new Login.Model.UserInfo();try{//讓D層推斷信息是否正確User = UserQD.QueryDao(user);}catch(Exception ex){throw ex;//將錯誤信息拋給U層}//返回用戶信息return User;}}? ? 3、DAL層
public Login.Model.UserInfo QueryDao(Login.Model.UserInfo user){using (SqlConnection conn=new SqlConnection(DBUtil.ConnString)){SqlCommand cmd = conn.CreateCommand(); //用于處理數(shù)據(jù)庫//推斷username是否存在cmd.CommandText = @"SELECT * FROM USERS WHERE UserName=@UserName";//獲得查詢語言cmd.CommandType = CommandType.Text;//加入查詢語言中的參數(shù)cmd.Parameters.Add(new SqlParameter("@UserName", user.UserName));conn.Open();//查詢并返回結(jié)果SqlDataReader reader = cmd.ExecuteReader();//聲明一個返回實例Login.Model.UserInfo User = new Login.Model.UserInfo(); try{//假設(shè)username存在。就返回用戶信息if (reader.Read()){//獲取用戶信息User.ID = reader.GetInt32(0);User.UserName = reader.GetString(1);User.Password = reader.GetString(2);//假設(shè)郵箱不為空,則取出if (!reader.IsDBNull(3)){User.Email = reader.GetString(3);}}else{//假設(shè)不存在,就拋出錯誤throw new Exception("該用戶不存在。"); }//斷開連接conn.Close();}catch (Exception ex){throw ex; //將錯誤信息拋給D層處理}return User; //返回用戶信息}}
? ? 4、結(jié)果
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? 5、小結(jié)
? ? ? 這次簡單的查詢過程就跟寄信似的,首先我們(U層)要將寫好的信裝入信封(即將username傳入實體)。然后交給郵遞員(B層)處理,最后到達(dá)收信人(D層)手中。經(jīng)過收信人的處理,將其回信(要返回的信息)再次裝入信封(返回實體)。然后再由郵遞員寄給我們,這樣我們就能依據(jù)回信,做出對應(yīng)的處理。
當(dāng)然。假設(shè)這個過程出現(xiàn)什么錯誤,郵遞員也會告知我們,像這樣,我們通過郵遞員就行實現(xiàn)方便的交流,通過我們的合作就行將一個復(fù)雜的工作做得井然有序。因此,我相信。僅僅要我們大家一起努力,這個世界一定變得更加美好。
轉(zhuǎn)載于:https://www.cnblogs.com/gccbuaa/p/7233585.html
總結(jié)
以上是生活随笔為你收集整理的三层架构与四大天王之——查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数调用栈
- 下一篇: noip2016 组合数问题