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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

三层架构实例

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

三層架構實例

一、新建立一個三層架構體系結構解決方案

新建一個空白解決方案。然后:????

1.“添加”-“新建項目”-“Visual C#”-“類庫”-“稱:LoginBLL”-“業務邏輯”(業務層,下簡稱B層)如下圖:



?2.“添加”-“新建項目”-“Visual C#”-“類庫”-“名稱:LoginDAL”-“數據訪問”(數據層,下簡稱D層)如下圖:


3.“添加”-“新建項目”-“Visual C#”-“類庫”-“名稱:LoginUI”(界面層,下簡稱U層)如下圖:


U層的界面效果圖:如下圖


?4. “添加”-“新建項目”-“Visual C#”-“類庫”-“名稱:LoginModel”(以下實體層)如下圖:


三層建立后的效果圖,如下圖:



二、引用(關鍵步驟)

右鍵點“解決方案”-“添加引用”,設置U依引用D、B,B引用于D。對U添加引用D、B,對B添加引用D。如下圖:

引用步驟一:


引用步驟二:


到此為止,一個登錄的三層架構的建立起來了。


三、各層實現代碼如下

B層代碼

[csharp] view plaincopyprint?
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • using?Login.BLL;??
  • using?Login.DAL;??
  • using?Login.Model;??
  • namespace?Login.BLL??
  • {??
  • ????public?class?LoginManager??
  • ????{??
  • ????????public?UserInfo?UserLogin(string?userName,?string?password)??
  • ????????{??
  • ??
  • ????????????UserDAO?uDao?=?new?UserDAO();??//實例化D層的類??
  • ????????????UserInfo?user?=?uDao.SelectUser(userName,?password);?//將user信息傳遞給D層??
  • ????????????if?(user?==?null)??//判斷user信息??
  • ????????????{??
  • ????????????????throw?new?Exception("登陸失敗");??
  • ????????????}??
  • ????????????else??
  • ????????????{??
  • ????????????????return?user;??
  • ????????????}??
  • ??
  • ??
  • ????????}??
  • ????}??
  • }??

  • D層代碼

    [csharp] view plaincopyprint?
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • using?Login.Model;??
  • using?System.Data.SqlClient;??
  • using?System.Data;??
  • ??
  • namespace?Login.DAL??
  • {??
  • ????public?class?UserDAO??
  • ????{??
  • ?????????//連接數據庫??
  • ????????public?static?string?ConnString?=?@"Server=XJC-PC;?Database=chargeStudent;?User?ID=sa;?Password=123456";??
  • ?????????
  • ????????public??UserInfo?SelectUser(string?userName,?string?password)?//各層都要用到實體類userInfo?通過實體類連接??
  • ??
  • ????????{??
  • ??????????????
  • ????????????using?(SqlConnection?conn?=?new?SqlConnection(ConnString))??
  • ????????????{??
  • ????????????????SqlCommand?cmd?=?conn.CreateCommand();?//數據庫連接命令??
  • ????????????????cmd.CommandText?=?@"select?*?from?user_Info?where?user_Name=@userName?AND?user_PWD=@password";??
  • ????????????????cmd.CommandType?=?CommandType.Text;??
  • ????????????????cmd.Parameters.Add(new?SqlParameter("@userName",?userName));??
  • ????????????????cmd.Parameters.Add(new?SqlParameter("@password",?password));??
  • ????????????????conn.Open();??
  • ????????????????SqlDataReader?reader?=?cmd.ExecuteReader();??//讀取數據??
  • ????????????????UserInfo?user?=?new?UserInfo();??
  • ????????????????while?(reader.Read())??
  • ????????????????{??
  • ??????????????????????
  • ????????????????????user.userName?=?reader.GetString(0);??
  • ????????????????????user.password?=?reader.GetString(1);??
  • ?????????????????????
  • ????????????????}??
  • ??????????????????return?user;??
  • ????????????}??
  • ????????????
  • ????????}??
  • ??
  • ????}??
  • }??

  • U層代碼

    [csharp] view plaincopyprint?
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.ComponentModel;??
  • using?System.Data;??
  • using?System.Drawing;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • using?System.Windows.Forms;??
  • using?System.Data.SqlClient;??
  • using?Login.BLL;??
  • using?Login.Model;??
  • namespace?LoginUI??
  • {??
  • ????public?partial?class?Form1?:?Form??
  • ????{??
  • ????????public?Form1()??
  • ????????{??
  • ????????????InitializeComponent();??
  • ????????}??
  • ??
  • ????????private?void?btnLogin_Click(object?sender,?EventArgs?e)??
  • ????????{??
  • ????????????LoginManager?mgr?=?new?LoginManager();?//實例化B層的類??
  • ????????????string?userName?=?txtUserName.Text.Trim();??
  • ????????????string?Password?=?txtPassword.Text;??
  • ????????????UserInfo?user?=?mgr.UserLogin(userName,?Password);???//將user信息傳遞給B層????
  • ????????????MessageBox.Show("登陸用戶:"?+?userName);??
  • ????????}??
  • ????}??
  • }??

  • 實體層代碼

    [csharp] view plaincopyprint?
  • using?System;??
  • using?System.Collections.Generic;??
  • using?System.Linq;??
  • using?System.Text;??
  • using?System.Threading.Tasks;??
  • ??
  • namespace?Login.Model??
  • {??
  • ????public?class?UserInfo??
  • ????{??
  • ????????public?string?userName;??
  • ????????public?string?UserName??
  • ????????{??
  • ????????????get?{?return?userName;?}??
  • ????????????set?{?userName?=?value;?}??
  • ????????}??
  • ????????public?string?password;??
  • ????????public?string?PassWord??
  • ????????{??
  • ????????????get?{?return?password;?}??
  • ????????????set?{?password?=?value;?}??
  • ????????}??
  • ????}??
  • }??

  • 四、運行成功的結果圖:如下圖



    以上是我對“三層實例”的真是實現,如有不妥之處,還請指教。

    總結

    以上是生活随笔為你收集整理的三层架构实例的全部內容,希望文章能夠幫你解決所遇到的問題。

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