上篇文章讲到三层。接下来就通过一个实例详细的看怎么用三层实现用户登陆界面。

一、Model实体(LoginModel):

namespace LoginModel
{//加入类:UserInfo  Model实体作用:封装数据,使数据在三层中传输 。更倾向于业务逻辑层public class UserInfo{//定义用户属性public int ID { get; set; }public string UserName { get; set; }public string Password { get; set; }}
}

二、UI层的设计:

首先简单的界面相信大家都会:

接下来是代码:

namespace LoginUI
{public partial class frmLogin : Form{public frmLogin(){InitializeComponent();}private void btnLogin_Click(object sender, EventArgs e){//UI层将用户输入数据传递给BLL层string userName = txtUserName.Text.Trim();string password = txtPassword.Text;LoginBLL.LoginManager mgr = new LoginBLL.LoginManager();LoginModel.UserInfo user = mgr.UserLogin(userName, password);//将UI层返回业务层传递的数据给用户MessageBox.Show("登陆用户:" + user.UserName);}       }
}

三、BLL层代码

namespace LoginBLL
{public class LoginManager{public LoginModel.UserInfo UserLogin(string userName, string password){LoginDAL.UserDAO uDao = new LoginDAL.UserDAO();//实例化DAL层LoginModel.UserInfo user = uDao.SelectUser(userName, password);//不需訪问数据源直接运行业务逻辑if (user != null){return user;}else{throw new Exception("登陆失败");                }}}
}

四、DAL层  代码

 public class UserDAO{public LoginModel.UserInfo SelectUser(string userName, string Password){//建立数据库连接string ConnString = @"Server=192.168.24.154;DataBase=机房收费系统人员记录; User ID=sa; Password=123";using (SqlConnection conn = new SqlConnection(ConnString)){//运行SQL语句进行查询SqlCommand cmd = conn.CreateCommand();cmd.CommandText = @"SELECT ID,UserName,Password FROM UserInfo WHERE UserName=@UserName AND Password=@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();LoginModel.UserInfo user = null;//读取详细的数据while (reader.Read()){if (user == null){user = new LoginModel.UserInfo();}//读取查询到的数据user.ID = reader.GetInt32(0);user.UserName = reader.GetString(1);user.Password = reader.GetString(2);}return user;}}}
}

登陆:

结果显示:

转载于:https://www.cnblogs.com/hrhguanli/p/5090740.html

三层架构下实现用户登陆C#相关推荐

  1. MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  2. linux查看用户的操作记录,Linux下查看用户登陆后的操作记录

    Linux下查看用户登陆后的操作记录  在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台 服务器多人登陆, ...

  3. Linux下查看用户登陆后的操作记录

    Linux下查看用户登陆后的操作记录 在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台 服务器多人登陆,一 ...

  4. MVC项目实践,在三层架构下实现SportsStore-06,实现购物车

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  5. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  6. 三层架构下,优酷视频搜索测试体系很复杂吗?

    作者| 阿里文娱测试开发专家 熙闫 责编 | 夕颜 简介 优酷搜索承担着内容分发场的头部兵的重任,海量的视频内容都要依赖搜索触达和呈现给 用户,而且逐渐扩大范围,开始向阿里文娱全系产品提供搜索服务和能 ...

  7. 三层架构与MVC架构的区别

    三层架构: 三层架构图 UI(User Interface layer:表现层): 主要是指用户交互的界面.用于接收用户输入的数据和显示处理后用户需要的数据. BLL:(Business Logic ...

  8. Java中使用MVC三层架构做登陆验证

    这里主要的内容是有关Java中MVC三层架构 目录 原始的登陆验证 分层改进(每个代码都是登录和验证两个功能) 使用分层想法做登陆验证 User类 表现层 业务层 持久层 原始的登陆验证 原始的登陆验 ...

  9. 学籍管理系统制作教程第二天之 用户登陆界面(三层)

    最近工作比较忙,所以没有连续的来写,今天有空了继续前面的 今天做用户登陆界面,使用三层架构,那么我就需要先理解什么是三层和为什么使用三层. 第一:什么是三层,UI表现层也就是界面,放各种界面如登陆界面 ...

最新文章

  1. 如何通过深度学习轻松实现自动化监控?
  2. spring2.5 mvc使用注解upload上传文件
  3. JVM从入门到精通(十):垃圾回收算法串讲:CMS,G1,三色标记算法
  4. Android开发中Edittext设置密码显示隐藏的多种方法
  5. Redis高级数据结构原理解析-bitmap,hyperloglog
  6. python定时器 循环_python从写定时器学习Thread
  7. (王道408考研操作系统)第四章文件管理-第二节3:减少延迟时间的方法
  8. linux 将程序链接到 usr bin,Linux / usr / bin文件在重新启动后消失
  9. 数据:灰度增持3594枚LTC和1.43万枚LINK
  10. mfc单文档中如何将view的基类由CView转为CScrollview
  11. data的值 如何初始化vue_【Vue 原理】Vue 是如何代理 data、methods 和 props 的?
  12. c# 存储图片到oracle,c# winform 读取oracle中blob字段的图片并且显示到pictureBox里 保存进库...
  13. 故事板(Storyboard)
  14. scope曲线用plot画出、多个scope用plot画出、scop数据保存至工作空间
  15. Alist+RaiDrive将你的云盘本地化
  16. cip核字号验证_cip核字号(cip数据核字号查询官网)
  17. 360兼容性问题:教资报名请使用搜狗浏览器(兼容模式)、360浏览器(兼容模式)、QQ浏览器(内核模式请选择:总是使用IE内核)、IE系列浏览器。
  18. PAT--1051 复数乘法
  19. springboot微信公众号发送模板消息
  20. 【Java培训】 IT行业是什么

热门文章

  1. 【hibernate系列】采用p6spy+SQLProfiler完整显示hibernate的S...
  2. 我们部署个额外域控制器
  3. 注册时发短信如何防止别人恶意调用短信接口
  4. printf()用法详解(转)
  5. Google是否会成为下一个微软?
  6. 在ComboBox控件中使用嵌入字体。
  7. 8583报文解析实例介绍
  8. Android开发工作中遇到的重点和难点总结
  9. android 学习笔记之图形算法
  10. anr trace文件分析