C#中三层架构UI、BLL、DAL、Model详解

news/2024/10/22 8:34:15/

三层架构分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)再加上实体类库(Model)

转载请注明出自朱朱家园https://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();
         }
     }
}

http://www.ppmy.cn/news/189297.html

相关文章

笔记(css3)-动画

目录 语法转换平移旋转缩放复合属性的顺序问题 过渡动画帧动画 案例案例1-热点图dot(缩放)案例2-热点图dot(缩放)案例3-开红包(旋转) 问题问题1-transform不起作用问题2 - 过渡动画不起效果 语法 转换 css3中的转换允许我们对元素进行旋转、缩放、移动或倾斜。它分为2D转换 或…

中望3d快捷键命令大全_室内设计3D快捷键 CAD命令

室内设计3D快捷键 CAD命令 比较愁人的问题,太多了. 这是CAD的 序号 快捷键 功 能 1 A 圆弧 2 AA 面积测量 3 ADC 设计中心 4 AR 阵列 5 ATT 定义属性 6 AV 鸟瞰视图 7 B 创建块 8 BR 打断 9 C 圆 10 CH 对象特征 11 CHA 倒角 12 CO 拷贝 13 DAL 对齐标注 14 DAN 角度标注 15 DB…

项目实战:基于Linux的Flappy bird游戏开发

一、项目介绍 项目总结 1.按下空格键小鸟上升,不按小鸟下落 2.搭建小鸟需要穿过的管道 3.管道自动左移和创建 4.小鸟撞到管道游戏结束 知识储备 1.C语言 2.数据结构-链表 3.Ncurses库 4.信号机制 二、Ncurses库介绍 Ncurses是最早的System V Release 4.0 (…

DAL

DAL:调用操作数据库的方法和常用方法来对数据进行增删改查。如&#xff1a; /// <summary> /// 是否存在该记录 /// </summary> public bool Exists(int id) { StringBuilder strSql new StringBuilder(); str…

使用ADO的通用DAL

目录 介绍 概述 代码 连接字符串 实体和属性 EntityBase CanDbInsertAttribute对象 样本实体 DAL&#xff08;数据访问层&#xff09; BLL&#xff08;业务逻辑层&#xff09; 用法 最新的代码更正 结束 下载示例 - 785.5 KB 介绍 让我们把这个放在前面。我不使…

【数据结构】——数据结构概论习题

目录 题1题2题3题4题5题6题7题8题9题10 题1 1、下列程序段的时间复杂度是&#xff08;&#xff09;。 A、O(nlog2n) B、O(n2) C、O(n) D、O(log2n) count0; for(k1;k<n;k*2)for(j1;j<n;j)count;解析&#xff1a;&#xff08;A&#xff09; 由for循环决定&#xff0c;假设…

Postman的使用——设置全局参数,参数的传递,从登录接口的响应body中提取数据更新全局参数,从响应cookie中提取数据更新全局变量

Postman的使用——设置全局参数&#xff0c;引用全局参数&#xff0c;参数的传递&#xff0c;从登录接口的响应body中提取数据更新全局参数&#xff0c;从响应cookie中提取数据更新全局变量 一、设置全局参数二、引用全局参数三、从登录接口的响应body中提取数据更新全局参数四…

基于flask的web应用开发——访问漂亮的html页面以及页面跳转

目录 0. 前言1. html基本知识2. 编写html文本3. 在Flask中设置访问html4. 实现点击跳转 0. 前言 本节学习如何在flask应用程序下让用户访问你提前制作好的html页面 操作系统&#xff1a;Windows10 专业版 开发环境&#xff1a;Pycahrm Comunity 2022.3 Python解释器版本&am…