C# 分层
三層架構分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)再加上實體類庫(Model)
轉載請注明出自朱朱家園http://blog.csdn.net/zhgl7688
1、實體類庫(Model),主要存放數據庫中的表字段。
操作:
(1)先建立實體類庫Model,打開項目,在解決方案中右鍵--》添加--》新建項目--》選中類庫--》改名Model--》確定
(2)選中Model類庫--》Shift+ALT+C--》建立實體類。UserInfo類
?
?| 1 2 3 4 5 6 7 8 | namespace Model { ???public? class UserInfo ????{ ????????public string? UserName { get; set; } ????????public string? Password { get; set; } ????} } |
2、數據訪問層(DAL),主要是存放對數據類的訪問,即對數據庫的添加、刪除、修改、更新等基本操作
?
操作:
?
(1)先建立數據訪問層類庫DAL,打開項目,在解決方案中右鍵--》添加--》新建項目--》選中類庫--》改名DAL--》確定
(2)在DAL中添加對Model的引用,選中DAL--》Alt+P+R--》解決方案--》項目--》選中MOdel--》確定
(3)在DAL中添加對system.configuration的引用,選中DAL--》Alt+P+R--》程序集--》框架--》選中System.configuration--》確定
(4)建立數據訪問類,選中DAL--》Shift+ALT+C--》建立數據訪問類。UserDB類
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | using System.Configuration; using Model; using System.Data; using System.Data.SqlClient; namespace DAL { ????class UserDB ????{ ????????private string connString = ConfigurationManager.ConnectionStrings[connString].ToString(); ????????public int AddUser(UserInfo userInfo) ????????{ ????????????//對數據庫進添加一個用戶操作 ????????????string commandText = insert into UserInfo (userName,Password)values(@userName,@Password); ????????????SqlParameter[] paras = new SqlParameter[] ????????????{ ???????????new SqlParameter (@userName,userInfo.UserName ), ???????????new SqlParameter (@Password,userInfo.Password ) ????????????}; ????????????return SqlHelper.ExecuteNonQuery(connString, CommandType.Text, commandText, paras); ????????} ????} |
| 1 2 | //添加其他對數據庫操作 } |
3、業務邏輯層(BLL)對傳送數據進行邏輯判斷分折,并進行傳送正確的值。
?
?
(1)先建立業務邏輯層類庫BLL,打開項目,在解決方案中右鍵--》添加--》新建項目--》選中類庫--》改名BLL--》確定
(2)在BLL中添加對Model、DAL的引用,選中BLL--》Alt+P+R--》解決方案--》項目--》選中MOdel、DAL--》確定
(3)建立業務邏輯類,選中BLL--》Shift+ALT+C--》建立業務邏輯類。LoginManager類
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | using DAL; using Model; namespace BLL { ????public class LoginManager ????{ ????????private UserDB userDB = new UserDB(); ????????public bool Add(UserInfo userInfo, out string messageStr) ????????{ ????????????messageStr = ;//返回界面層添加用戶返回信息 ????????????bool isSuccess = false; ????????????if (userInfo.UserName.Trim().Length != 0)//判斷從傳遞來的username是否為空 ????????????{ ????????????????if (userDB.IsEquals(userInfo))//傳給DALl操作判斷數據庫中是否有重復值 ????????????????{ ????????????????????userDB.AddUser(userInfo);//傳給DAL操作增加一個新用戶 ????????????????????isSuccess = true; ????????????????} ????????????????else ????????????????????messageStr = 有相同的值; ????????????} ????????????else ????????????{ ????????????????messageStr = 不能為空; ????????????} ????????????return isSuccess;//返回界面層是否添加成功 ????????} ????} } |
5、表現層(UI)即用戶界面層
?
(1)在UI中添加對Model、BLL的引用,選中UI--》Alt+P+R--》解決方案--》項目--》選中MOdel、BLL--》確定
(2)編寫代碼傳遞數據給BLL層。
?
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ????UserInfo userInfo; ????LoginManager lm = new LoginManager(); ????private void btnAdd_Click(object sender, EventArgs e) ????{ ????????userInfo = new UserInfo() ????????{ ????????????UserName = txtUserName.Text.Trim(), ????????????Password = txtPassword.Text.Trim() ????????}; ????????string messageStr = ; ????????if (lm.Add(userInfo, out? messageStr)) ????????{ ????????????MessageBox.Show(添加成功); ????????} ????????else ????????{ ????????????MessageBox.Show(messageStr); ????????????txtUserName.Focus(); ????????} ????} } |
?
?
?
轉載于:https://www.cnblogs.com/shiguanji/p/6661249.html
總結
- 上一篇: 第一类第二类丢失更新
- 下一篇: 使用.net Stopwatch cla