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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

(转)三层相关案例(及常见的错误)

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)三层相关案例(及常见的错误) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://www.cnblogs.com/zysbk/archive/2012/10/16/2726895.html

?

三層相關案例(及常見的錯誤)

今天我們再次帶領大家學習三層的知識,由于三層這塊的內容在工作中用的比較的多.所以,我再把登錄驗證密碼的題目做一遍.題目中沒有了驗證用戶是否存在.

先回顧一下上次我們給大家看的兩個圖:

一、三層架構圖

二、兩個案例的流程圖

今天我們建三個項目,這個方便我們看清三層。

三、建好界面層

四、建好的三層

SqlHelper是操作數據庫的,和數據庫有關,在數據訪問層。添加一個引用。

我們把配置文件也先放在數據訪問層里面。將配置文件中的相關信息改好。

下面我們還是先畫下界面層的界面。

五、畫好界面層

下面的步驟我們再復習一下:

  • 根據需求分析Sql語句
  • 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

    總結

    以上是生活随笔為你收集整理的(转)三层相关案例(及常见的错误)的全部內容,希望文章能夠幫你解決所遇到的問題。

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