三層登入例項總結

2021-08-02 03:31:09 字數 3378 閱讀 4254

三層結構即:ui(顯示層)、bll(業務邏輯層)、dal(資料訪問層)

ui的作用:

(1)向使用者展現特定業務資料;

(2)採集使用者的輸入資訊和操作。

bll的作用:

(1)從dal中獲取資料,以供ui顯示用;

(2)從ui中獲取使用者指令和資料,執行業務邏輯;

(3)從ui中獲取使用者指令和資料,通過dal寫入資料來源。

dal的作用:

(1)從資料來源載入資料(select);

(2)向資料來源寫入資料(insert / update);

(3)從資料來源刪除資料(delete)。

三層之間的引用關係:ui -> bll -> dal

具體應用原則:

(1)dal只提供基本的資料訪問,不包含任何業務相關的邏輯處理;

(2)ui只負責顯示和採集使用者操作,不包含任何的業務相關的邏輯處理;

(3)bll負責處理業務邏輯,通過獲取ui傳來的操作指令,決定執行業務邏輯,在需要訪問資料來源的時候直接交給dal處理。處理完成後,返回必要資料給ui。

使用vs程式設計具體實現如下:

建立乙個名為「loginsolution」的解決方案,然後新增專案,專案名稱分別為loginui、loginbll、logindal、loginmodel,在各個專案下新增類。loginui引用loginbll和loginmodel,loginbll引用logindal和loginmodel,logindal引用loginmodel。效果如下圖:

使用者介面如下圖:

loginui的**如下:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.data.sqlclient;

using system.drawing;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

namespace loginui

private void btnlogin_click(object sender, eventargs e)

catch (exception ex) //如有登入異常,則提示登入失敗

}

loginbll的**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace login.bll

else}}

}

logindal的**如下:(1)userdao**:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.data;

using system.data.sqlclient;

namespace login.dal

user.id = reader.getint32(0);

user.username = reader.getstring(1);

user.password = reader.getstring(2);

if (!reader.isdbnull(3))

}return user;}}

}}

(2)scoredao**:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.data.sqlclient;

namespace login.dal}}

}

(3)dbutil**:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace login.dal

}

loginmodel的**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace login.model

public string username

public string password

public string email }}

資料庫中scores表和users表設計如下:

再來一張圖~

c mysql三層架構例項 三層架構例項

一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...

三層登入實現

上篇部落格說到三層的四個問題 what why when how how部分沒有說,這篇部落格以登入為例,用c 實現三層登入,了解它的執行過程以及 詳解。下面這張圖是通過vs生成的時序圖,詳細地講述了登入的整個過程。上面這張圖有些繁瑣,其實簡單地說,就是ui層採集使用者的使用者名稱和密碼,然後傳遞給...

三層登入窗體

經過幾天的努力奮鬥,三層登入窗體終於完成了,雖然歷經風雨,但是經過小夥伴們的幫助,順利的學習到了很多的東西。u層 namespace loginui private void btnlogin click object sender,eventargs e b層 namespace login.bl...