日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三层架构与四大天王之——查

發布時間:2025/3/15 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三层架构与四大天王之——查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?上次我們說到了。怎樣利用三層架構去數據庫中刪除數據。這次我們就來談談如何去數據庫中查找數據。事實上在上篇文章中也涉及到了查找,但那是將整個表中的記錄都顯示出來,而我們這次來查找我們所須要的某一條記錄。

? 1、UI層

?首先是界面,還記得我們第一次加入的“王菲”的那條記錄嗎。今天我們就將它查出來

private void button1_Click(object sender, EventArgs e){//實例化一個模型對象,用來向D層傳遞信息Login.Model.UserInfo user = new Login.Model.UserInfo();//實例化一個模型對象。用來從D層接受信息Login.Model.UserInfo User = new Login.Model.UserInfo();//講參數傳給該對象user.UserName = txtUserName.Text.Trim();//實例化B層UserQuery.BLL.QueryBLL userQ = new UserQuery.BLL.QueryBLL ();try{//將該對象傳給B層處理User = userQ.UserQuery(user);}catch(Exception ex){MessageBox.Show(ex.Message);return;}txtInformation.Text = "用戶ID:" + User.ID + "\r\n" + "用戶姓名:" + User.UserName + "\r\n" + "用戶password:" + User.Password + "\r\n" + "用戶Email:" + User.Email;}}

? ? 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(); //用于處理數據庫//推斷username是否存在cmd.CommandText = @"SELECT * FROM USERS WHERE UserName=@UserName";//獲得查詢語言cmd.CommandType = CommandType.Text;//加入查詢語言中的參數cmd.Parameters.Add(new SqlParameter("@UserName", user.UserName));conn.Open();//查詢并返回結果SqlDataReader reader = cmd.ExecuteReader();//聲明一個返回實例Login.Model.UserInfo User = new Login.Model.UserInfo(); try{//假設username存在。就返回用戶信息if (reader.Read()){//獲取用戶信息User.ID = reader.GetInt32(0);User.UserName = reader.GetString(1);User.Password = reader.GetString(2);//假設郵箱不為空,則取出if (!reader.IsDBNull(3)){User.Email = reader.GetString(3);}}else{//假設不存在,就拋出錯誤throw new Exception("該用戶不存在。"); }//斷開連接conn.Close();}catch (Exception ex){throw ex; //將錯誤信息拋給D層處理}return User; //返回用戶信息}}

? ? 4、結果

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? 5、小結

? ? ? 這次簡單的查詢過程就跟寄信似的,首先我們(U層)要將寫好的信裝入信封(即將username傳入實體)。然后交給郵遞員(B層)處理,最后到達收信人(D層)手中。經過收信人的處理,將其回信(要返回的信息)再次裝入信封(返回實體)。然后再由郵遞員寄給我們,這樣我們就能依據回信,做出對應的處理。

當然。假設這個過程出現什么錯誤,郵遞員也會告知我們,像這樣,我們通過郵遞員就行實現方便的交流,通過我們的合作就行將一個復雜的工作做得井然有序。因此,我相信。僅僅要我們大家一起努力,這個世界一定變得更加美好。






轉載于:https://www.cnblogs.com/gccbuaa/p/7233585.html

總結

以上是生活随笔為你收集整理的三层架构与四大天王之——查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。