学习了三层,有一个登录窗口的小练习。是我们第一次接触三层的初战。如今仅仅是简单的了解了一些,须要学习的还有非常多,以下浅谈自己的理解。

我们说的三层就是分层了显示层、业务逻辑层和数据訪问层。当中显示层是直接和客户打交道的,是用户的显示界面;而业务逻辑层是处理业务的,是中间的桥梁。联系着显示层和数据訪问层,把用户的请求进行分析处理,在给数据源写入;那么数据訪问层是做什么的呢?主要操纵数据库,对数据库中的数据进行增删改查的处理。这样各个层次就有了自己特定的功能,达到了高内聚低耦合的效果。

这是一个简单的登录窗口的实现过程。

【显示UI层】

<span style="font-family:KaiTi_GB2312;font-size:18px;">    private void btnOK_Click(object sender, EventArgs e)//登录button
string UserName=txtUserName.Text.Trim ();//username赋值给UserName
string Password=txtPassWord .Text ; //password赋值给Password
Login<span style="color:#FF0000;">.<strong>BLL.LoginManager</strong></span> mgr = new Login.BLL.LoginManager();//实例化出BLL层中的LoginManager,两个引用的实现
Login.<span style="color:#333333;"><strong>Model.UserInfo</strong></span> user=mgr.UserLogin(UserName, Password);//调用BLL层中的方法UserLogin
MessageBox.Show("登录用户:" + user.UserName);</span>

【业务逻辑层BLL层】

<span style="font-family:KaiTi_GB2312;font-size:18px;">    public class  <span style="color:#FF0000;"><strong>LoginManager</strong></span>//调用BLL层中的LoginManager
{
public Login.Model.UserInfo <span style="color:#FF0000;"><strong>UserLogin</strong></span>(string UserName,string Password)
{
Login.<span style="color:#FF0000;"><strong>DAL.UserDAO</strong></span> uDao = new Login.DAL.UserDAO();//实例化DAL层中的UserADO
Login.<strong>Model.UserInfo</strong> user=uDao.SelectUser(UserName, Password);//在数据层DAL。调用方法SelectUser推断username和password
if (user!=null)
{
Login.DAL.ScoreDAO sDao = new Login.DAL.ScoreDAO();//实例出DAL层的ScoreDAO。对登录成功的用户进行加分操作
sDao.UpdateScore(UserName, 10);
return user;
}
else
{
throw new Exception("登录失败");
}
}
</span>

【数据訪问层DAL】

<span style="font-family:KaiTi_GB2312;font-size:18px;">public static string conString = @"Server=LFH;Database=LoginSanCeng;User ID=sa;Password=1";//链接数据库

public  Login.Model.UserInfo <span style="color:#FF0000;"><strong>SelectUser</strong></span>(string UserName,string Password)
{
using (SqlConnection conn = new SqlConnection(DBUtil.conString)) //通过參数DBUtil.conString打开连接数据
{
SqlCommand cmd = conn.CreateCommand();//创建cmd运行sql语句
cmd.CommandText = @"SELECT ID,UserName,Password,Emall FROM Users WHERE UserName=@UserName AND Password=@Password";//sql语句
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@UserName", UserName));//Parameters加入參数
cmd.Parameters.Add(new SqlParameter("@Password", Password));
conn.Open();//打开数据源
SqlDataReader reader = cmd.ExecuteReader();//读取数据而且得到结果 Login.Model.UserInfo user = null;
while (reader.Read ())//读取数据
{
if (user==null)
{
user = new Login.Model.UserInfo(); }
user.ID = reader.GetInt32(0);
user.UserName = reader.GetString(1);
user.Password = reader.GetString(2);
if (!reader.IsDBNull(3))
{
user.Emall = reader.GetString(3);
}
}
return user;
}
}
} public void <span style="color:#FF0000;"><strong>UpdateScore</strong></span>(string UserName,int value)//更新分数操作
{
using (SqlConnection conn=new SqlConnection(DBUtil.conString ))//打开数据库链接
{
SqlCommand cmd = conn.CreateCommand ();//创建运行sql语句
cmd.CommandText = @"INSERT INTO SCORE(UserName,Score) Values(@UserName,@Score)";//sql语句
 cmd.Parameters.Add(new SqlParameter("@UserName", UserName));加入到数据库中
cmd.Parameters.Add(new SqlParameter("@Score", value));
//cmd.Parameters.Add(new SqlParameter("@ID", value));
conn.Open();打开数据库
cmd.ExecuteNonQuery();//运行sql语句,返回整数变量
}
}</span>

当中三层登录就是UI层引用BLL层的逻辑进行业务分析,BLL层引用DAL层进行数据推断,假设数据正确用户能够登录成功通过BLL层返回给UI层,UI显示给客户。Model层是封装数据的,提供给其它三个层次,它是独立的,不引用不论什么层的逻辑,甚至不知道其它层次的存在,仅仅是提供了服务,是最无私的。UI引用了BLL层和Model层,BLL层引用DAL和Model层。从而实现了UI层和DAL的间接联系,而DAL层引用了Model层,主要是对数据库的操作。

三层就是把一个系统分成部分,每一个部分负责一定的职责,各尽其职,各司其守。不可越俎代!

三层登录—c#的更多相关文章

  1. 三层登录实例VB.NET版详解---理论加实战篇

    层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠:重复:层峦叠嶂|层出不穷.最后-量词,用于可以分出层次的事物,女孩儿强烈的第六感,三层中的层一定是 ...

  2. 三层登录实例VB.NET版具体解释---理论加实战篇

    层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠.反复:层峦叠嶂|层出不穷.最后-量词,用于能够分出层次的事物.女孩儿强烈的第六感,三层中的层一定是 ...

  3. 三层登录——VB.NET版

    前言 由于下面的机房收费系统重构自己要用VB.NET进行重构,所以在敲三层登录的时候,实践了一份C#版三层登录,接着就是VB.NET版的三层登录.话说还有七层登录,一下子感觉三层又矮小了.万丈高楼平地 ...

  4. 三层登录——C#版

    前言 前期了解三层架构主要是由UI层.BLL层和DAL层三部分构成.看到大牛们都采用三层的思想实现了登录,本菜鸟暗暗地站在了他们的肩膀上. 自己理解 对于三层自己的理解是:就像我们对一个大型的公司去找 ...

  5. vb.net三层实现登录例子

    看三层已经很长时间了,中间有经过了期末考试.回家等等琐事,寒假开学的我已经回想不起什么事三层了,经过了三四天的重新复习,再加上查看各期师哥师姐的博客,终于,自己完成了C#视频中的登录小例子,下面就和大 ...

  6. winform学习日志(十九)----------真正三层架构之登录

    摘要:一:三层构架的基础知识在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI).业务逻辑层(BLL)和数据访问层(DAL).三层的作用分别如下: 表示层:为用户提供交互操作界面, ...

  7. C# 三层架构之系统的登录验证与添加数据的实现

    利用三层架构体系,实现学生管理系统中用户的登录与添加班级信息的功能,一下代码为具体实现步骤的拆分过程: 一.用户登录界面功能的实现 1.在数据访问层(LoginDAL)进行对数据库中数据的访问操作 u ...

  8. MVC+三层+ASP.NET简单登录验证

    通过制作一个登录小案例来搭建MVC简单三层 在View --Shared下创建一个母版页: <!DOCTYPE html> <html> <head> <me ...

  9. c#利用三层架构做一个简单的登录窗体

    就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...

随机推荐

  1. tp框架表单提交注意!不要提交到当前方法

    tp框架  表单提交到当前方法,会重复执行显示部分和保存部分的代码.导致不知名的错误.

  2. HDU 4329 Contest 3

    果然换个编译器就过了.总的来说,不难,不过就是处理一些空格.学习了一个新的类 istringstream可以按空格划分.然后,那条式子要理解. 式子的意义是: 找到一个串,该串在query中是第几个找 ...

  3. ZOJ 2836

    求不比M大的可以被集合任一个数整除的数的个数.(容斥原理) #include <iostream> #include <cstdio> #include <algorit ...

  4. Android实战简易教程-第十三枪(五大布局研究)

    我们知道Android系统应用程序通常是由多个Activity组成,而这些Activity以视图的形式展如今我们面前, 视图都是由一个一个的组件构成的. 组件就是我们常见的Button.TextEdi ...

  5. 搜狗面试的经典题(C++map按值排序,class struct的差别)

    一:起因 (1)java  Map排序(key,value).请看还有一篇博客 java Map排序 (2)c++ map排序(key,value),能够对c++ map和java Map进行对照:之 ...

  6. 配置 Phpstorm + Xdebug + xampp

    配置 Phpstorm + Xdebug + xampp 1 Xampp 安装好xampp,配置 httpd.conf 在xampp面板中 单击后会出现一些配置文件,httpd.conf位于第一个 将 ...

  7. hdu4390-Number Sequence(容斥计算)

    题意:给定b数列.计算有多少种数列 a1,a2,...,an 满足条件 a1*a2*...*an=b1*b2*-*bn (ai>1). 解法:处理出b数列中出现的全部质因子的数量记录在map中, ...

  8. [jzoj 6087] [GDOI2019模拟2019.3.26] 获取名额 解题报告 (泰勒展开+RMQ+精度)

    题目链接: https://jzoj.net/senior/#main/show/6087 题目: 题解: 只需要统计$\prod_{i=l}^r (1-\frac{a_i}{x})$ =$exp(\ ...

  9. luogu 1558 色板游戏

    写这篇博客不是为了总结我的算法,而是为了纪念让我爆零的套路..... 色板游戏 色板长度为\(L\),\(L\)是一个正整数,所以我们可以均匀地将它划分成\(L\)块\(1\)厘米长的小方格.并从左到 ...

  10. POJ 3273 Monthly Expense 【二分答案】

    题意:给出n天的花费,需要将这n天的花费分成m组,使得每份的和尽量小,求出这个最小的和 看题目看了好久不懂题意,最后还是看了题解 二分答案,上界为这n天花费的总和,下界为这n天里面花费最多的那一天 如 ...