C# 三層架構分爲:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)再加上實體類庫(Model)數據庫
一、實體類庫(Model),主要存放數據庫中的表字段。架構
操做:框架
(1)先創建實體類庫Model,打開項目,在解決方案中右鍵--》添加--》新建項目--》選中類庫--》更名Model--》肯定spa
(2)選中Model類庫--》Shift+ALT+C--》創建實體類。UserInfo類get
- namespace Model
- {
- public class UserInfo
- {
- public string UserName { get; set; }
- public string Password { get; set; }
- }
- }
二、數據訪問層(DAL),主要是存放對數據類的訪問,即對數據庫的添加、刪除、修改、更新等基本操做
操做:string
(1)先創建數據訪問層類庫DAL,打開項目,在解決方案中右鍵--》添加--》新建項目--》選中類庫--》更名DAL--》肯定io
(2)在DAL中添加對Model的引用,選中DAL--》Alt+P+R--》解決方案--》項目--》選中MOdel--》肯定class
(3)在DAL中添加對system.configuration的引用,選中DAL--》Alt+P+R--》程序集--》框架--》選中System.configuration--》肯定object
(4)創建數據訪問類,選中DAL--》Shift+ALT+C--》創建數據訪問類。UserDB類引用
- 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);
- }
- }
- }
三、業務邏輯層(BLL)對傳送數據進行邏輯判斷分折,並進行傳送正確的值。
(1)先創建業務邏輯層類庫BLL,打開項目,在解決方案中右鍵--》添加--》新建項目--》選中類庫--》更名BLL--》肯定
(2)在BLL中添加對Model、DAL的引用,選中BLL--》Alt+P+R--》解決方案--》項目--》選中MOdel、DAL--》肯定
(3)創建業務邏輯類,選中BLL--》Shift+ALT+C--》創建業務邏輯類。LoginManager類
- 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)
- {
- if (userDB.IsEquals(userInfo))
- {
- userDB.AddUser(userInfo);
- isSuccess = true;
- }
- else
- messageStr = "有相同的值";
- }
- else
- {
- messageStr = "不能爲空";
-
- }
- return isSuccess;
- }
- }
- }
五、表現層(UI)即用戶界面層
(1)在UI中添加對Model、BLL的引用,選中UI--》Alt+P+R--》解決方案--》項目--》選中MOdel、BLL--》肯定
(2)編寫代碼傳遞數據給BLL層。
- 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();
- }
-
- }
- }