(转)三层相关案例(及常见的错误)
原文地址:http://www.cnblogs.com/zysbk/archive/2012/10/16/2726895.html
?
三層相關案例(及常見的錯誤)
今天我們再次帶領大家學習三層的知識,由于三層這塊的內容在工作中用的比較的多.所以,我再把登錄驗證密碼的題目做一遍.題目中沒有了驗證用戶是否存在.
先回顧一下上次我們給大家看的兩個圖:
一、三層架構圖
二、兩個案例的流程圖
今天我們建三個項目,這個方便我們看清三層。
三、建好界面層
四、建好的三層
SqlHelper是操作數據庫的,和數據庫有關,在數據訪問層。添加一個引用。
我們把配置文件也先放在數據訪問層里面。將配置文件中的相關信息改好。
下面我們還是先畫下界面層的界面。
五、畫好界面層
下面的步驟我們再復習一下:
selectcount(*)fromT_SeatswhereCC_LoginId=@uidandCC_LoginPassword=@pwd
當登錄成功之后,第一在窗體的上方顯示歡迎xxx,第二要記住登錄的主鍵Id。
查主鍵Id和真實姓名。
selectcc_autoId,cc_userNamefromT_SeatswhereCC_LoginId=@uidandCC_LoginPassword=@pwd
2. 數據訪問層
想一下執行第一條Sql語句需要調什么方法?
執行第二條Sql語句需要調什么方法?
確定下數據訪問層的類。
六、驗證登錄是否成功方法的代碼
七、寫好model
八、寫好數據訪問層的代碼
3.確定BLL業務邏輯層
九、創建好類,添加引用,寫好MD5
十、寫好業務邏輯層
十一、添加兩個引用,寫好存數據的類,及代碼
十二、寫好界面層的代碼
調試的時候出現錯誤,大家也來想一想哪兒出現了錯誤呢?
表明SqlHelper中讀取字符串出現錯誤。
查了之后,還沒有讀到這,那可能就是配置文件的問題。
剛才我們把配置文件放在了數據訪問層,為什么不能放在數據訪問層呢?
十三、系統報錯,及修改思路
另外,如果不想在界面層做一堆的邏輯判斷的話,把我們剛在里面寫的邏輯判斷,再封裝成一個方法。
確定BLL業務邏輯層:根據需求確定需要幾個方法,以及每個方法的參數與返回值等。
十四、把登錄成功的用戶名顯示到窗口的左上角
下面我們做下修改密碼,修改密碼跟用戶登錄思路差不多.也是確定SQL語句,數據訪問層,業務邏輯層,寫好界面層.
十五、修改密碼界面層一
十六、修改密碼界面層二
十七、顯示修改密碼按鈕及彈出第二個窗體
好了,現在我們想下修改密碼我們用到了哪些SQL語句?
一條是:判斷舊密碼是否正確。
一條是:修改新密碼。
//驗證舊密碼的sql
select count(*) from T_Seats where CC_AutoId= @autoId and
CC_loginPassword= @oldPwd
//執行修改密碼
update T_Seats set CC_LoginPassword = @newpwd where cc_autold= @autold
有了這兩個SQl語句,我們該寫數據訪問層那兩個方法了。
十八、驗證舊密碼,修改密碼數據訪問層代碼
數據訪問層寫好,我們就改寫業務邏輯層了。業務邏輯層有什么的方法取決于現在的需求。
驗證新密碼是否一致,舊密碼是否正確,確定它修改是否成功。封裝一個方法,最后根據需求返回不同的值。
十九、寫好業務邏輯層
接著我們在界面層調用一下。
二十、最后寫好界面層的代碼
二十一、校驗程序
接下來我們說下用三層完成遞歸加載,和遞歸刪除
為了方便我還是建在同一個應用程序里面。
還是寫三層的步驟,現在要實現遞歸加載需要什么樣的SQL語句。
根據父Id獲取子類別,接下來寫數據訪問層。
單獨建個表
二十二、遞歸加載準備工作
二十三、儲存數據的model類
二十四、數據訪問層的方法
要做遞歸加載就用到這么一個數據庫的操作方法。接下來寫業務邏輯層的方法,這個時候業務邏輯層沒有什么邏輯處理的工作,就是拿到數據就行了,就是個打醬油的。
二十五、遞歸加載的兩種寫法
二十六、業務邏輯層用緊耦合的方法
二十七、把遞歸加載寫到業務邏輯層中
二十八、最后改下配置文件和啟動窗體
二十九、遞歸加載結果演示
這樣寫行不行?合適不合適?
不合適,為什么呢?在業務邏輯層用到了窗體中的類。當我把界面換成web之后,業務邏輯層中用的就不是這些了。
這個邏輯應該寫到界面層,作為界面層的邏輯。
上面的寫法是專門為windows窗體寫的邏輯,緊耦合。
要是一個字符串的話,就是松耦合。因為任何的程序都有。
三十、在界面層的代碼
下面我們做下刪除節點,極其子節點:
大家還是想一下,當我點擊按鈕之后執行什么樣的SQL語句。
還是先寫數據訪問層:
三十一、刪除-數據訪問層代碼
三十二、刪除-業務邏輯層代碼
三十三、刪除-界面層
三十四、怎么拿到bll層
作者近期文章列表:
| C#基礎教程(完全免費,獻給代碼愛好者的最好禮物。注:本作者分享自己精心整理的C#基礎教程,無任何商業目的。 希望與更多的代碼愛好者交流心得,也請高手多多指點!!!) | |
| 三層 | 三層(一) |
| SQL數據庫 ADO.net | 數據庫的應用圖解一 |
| 數據庫的應用詳解二 | |
| ADO.NET(內涵效率問題) | |
| 面向過程,面向對象中高級 | 面向過程,面向對象的深入理解一 |
| 面向過程,面向對象的深入理解二 | |
| 面向對象的深入理解三 | |
| winform基礎 | Winform基礎 |
| winform中常用的控件 | |
| 面向過程 | 三種循環的比較 |
| C#中的方法(上) | |
| 我們常見的數組 | |
| 面向對象 | 思想的轉變 |
| C#中超級好用的類 | |
| C#中析構函數和命名空間的妙用 | |
| C#中超級好用的字符串 | |
| C#中如何快速處理字符串 | |
| 值類型和引用類型及其它 | |
| ArrayList和HashTable妙用一 | |
| ArrayList和HashTable妙用二 | |
| 文件管理File類 | |
| 多態 | |
| C#中其它一些問題的小節 | |
| GDI+ | 這些年我收集的GDI+代碼 |
| 這些年我收集的GDI+代碼2 | |
| HTML概述以及CSS | 你不能忽視的HTML語言 |
| 你不能忽視的HTML語言2精編篇 | |
| 你不能忽視的HTML語言3 | |
| CSS基本相關內容--中秋特別奉獻 | |
| CSS基本相關內容2 | |
| JavaScript基礎 | JavaScript基礎一 |
?
轉載于:https://www.cnblogs.com/fcsh820/archive/2012/10/18/2728881.html
總結
以上是生活随笔為你收集整理的(转)三层相关案例(及常见的错误)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LitePal的简单使用
- 下一篇: Litepal使用