三层已经学了很久了,一直没有写博客是因为自己感觉对三层的理解还太肤浅,怕写的不对误导别人。当然就现在我的水平而言对于三层的理解还是不够深刻,但是我感觉不至于误导别人了,所以将我对于三层的一些理解写出来,希望会对和我当初一样迷茫的菜鸟一些帮助!

回想当初我学习三层的时候,在网上寻找关于三层的知识,找到了很多例子,但是感觉它们都有些复杂,不太适合刚刚接触三层的人学习,所以我决定写一个简单的三层实例,下面言归正传。

简单的三层划分:

用户登录界面:

用户名、密码输入正确以后提示登录成功:

下面是UI层的代码:

//单击登录按钮private void btnLogin_Click(object sender, EventArgs e){//声明一个Bool类型的变量用来接收登录状态(是否登录成功)bool result = false;//判断用户名跟密码是否为空if (txtUserName.Text == ""){MessageBox.Show("用户名不能为空!");txtUserName.Focus();return;}if (txtPwd.Text == ""){MessageBox.Show("密码不能为空!");txtPwd.Focus();return;}//声明一个用户对象User euser = new User();euser.UserName = txtUserName.Text.Trim();euser.Pwd = txtPwd.Text.Trim();LoginBLL blogin = new LoginBLL();result = blogin.BLogin(euser);//判断是否登录成功if (result == true){MessageBox.Show("登录成功!");}else{MessageBox.Show("登录失败!");}}//单击取消按钮private void btnCancel_Click(object sender, EventArgs e){this.Close();}

  

下面是BLL(业务逻辑)层的代码:

public class LoginBLL{/// <summary>/// 验证密码是否正确/// </summary>/// <param name="User"></param>/// <returns></returns>public bool BLogin(User User){UserDAL duser = new UserDAL();User euser = new User();euser = duser.DLogin(User);if (euser.Pwd == User.Pwd){return true;}else{return false;}}}

  

以下是DAL(数据访问)层的代码:

 public class UserDAL{static string conString = "data source=RONALDINHO-PC;database=charge system;uid=sa;pwd=123456";SqlConnection cnn = new System.Data .SqlClient .SqlConnection (conString);/// <summary>/// 根据输入的用户名取出用户密码/// </summary>/// <param name="user"></param>/// <returns></returns>public User  DLogin(User user){string sqlString = "select * from UserInfo where UserName='" + user.UserName +"'"  ;User euser = new User();SqlCommand cmd =new SqlCommand(sqlString, cnn);cnn.Open();SqlDataReader read ;read = cmd.ExecuteReader();read.Read();euser .UserName  = read[0].ToString();euser.Pwd = read[1].ToString();return euser   ;}}

  

  

  

其实三层理解起来很简单,就是把不同的责任划分到不同的层,以达到解耦的目的。分层的目的就是为了让程序变得高内聚、低耦合,使代码更加灵活、易扩展,让代码更具有易用性等等。说一千道一万也没什么作用,只有通过实践才能更深刻的体会三层的意义,所以希望和我一样的菜鸟们看完这篇博客就动手去做吧!

PS:此博客的题目纯属为了吸引人,我不敢说我写的这篇博客就是最简单明了的三层实例,只是把我的理解拿出来跟大家分享一下,所以高手看到后一笑而过就好了,千万别喷我...

源代码下载

from: http://www.cnblogs.com/liushuijinger/archive/2012/03/12/2391191.html

有史以来最简单的三层实例(C#)相关推荐

  1. 一个简单的三层架构例子(.NET入门)

    最近开始学习.NET 用的是c# 目前要用三层架构的模式开发一个简单的图书管理系统,不过以为刚接触这门技术.做起来分外吃力,甚至连究竟要写些什么都不清楚. 于是乎上网到处找寻三层架构的基础入门知识,终 ...

  2. 《简明电路分析》——1.6节简单电路分析实例

    本节书摘来自华章社区<简明电路分析>一书中的第1章,第1.6节简单电路分析实例,作者钟洪声 吴 涛 孙利佳,更多章节内容可以访问云栖社区"华章社区"公众号查看 1.6 ...

  3. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

  4. php xml对象解析_php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  5. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

  6. python3爬虫实例-python3.7简单的爬虫实例详解

    python3.7简单的爬虫,具体代码如下所示: #https://www.runoob.com/w3cnote/python-spider-intro.html #Python 爬虫介绍 impor ...

  7. python爬虫实例-python3.7简单的爬虫实例详解

    python3.7简单的爬虫,具体代码如下所示: #https://www.runoob.com/w3cnote/python-spider-intro.html #Python 爬虫介绍 impor ...

  8. android 代码浏览,Webview实现android简单的浏览器实例代码

    WebView是Android中一个非常实用的组件,它和Safai.Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数据的方式便捷地展现软件的界面,下面通过本文给大家介绍Webv ...

  9. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

最新文章

  1. 宁夏大学数学与计算机学院,毕利-宁夏大学信息工程学院
  2. 第2关:CLA182四位先行进位电路设计
  3. tensorflow1.0 2.0区别
  4. 第 3 章 镜像 - 014 - 镜像的缓存特性
  5. 股票交易应用系统的性能分析工具介绍(一)
  6. 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu
  7. struts配置详解
  8. VisualStudioCode 中设置中文语言【图文教程】
  9. C语言 atoi函数简单实现
  10. pandas基本操作函数
  11. Silverlight Telerik控件学习:主题Theme切换
  12. 导出包含富文本内容和图片的word和pdf
  13. 服务器显示连接网络连接失败是怎么回事儿,app出现网络连接失败是什么原因
  14. debouncing 与 throttling
  15. linux服务器网络不稳定,Linux服务器故障排查指南7:网络缓慢状况
  16. 多线程有几种实现方法,同步有几种实现方法
  17. StarUML3.0.1的破解方法
  18. c语言计算两个整数的乘积
  19. 1224:整除的尾数 c语言
  20. 题2:找出落单的那个数

热门文章

  1. perl基本语法--转载
  2. 【数据处理】python数据清洗通用手法:缺失值处理
  3. HuggingFace-transformers系列的介绍以及在下游任务中的使用
  4. 跟我学大数据分析之四:“钱”去哪儿了?
  5. 一场低调的逆袭:清华文化如何改变了王兴和美团?
  6. Spring5 - Bean的初始化和销毁的4种方式
  7. Redis进阶- Redisson分布式锁实现原理及源码解析
  8. JVM-08垃圾收集Garbage Collection【GC常用参数】
  9. php中如何上传非表单类数据,PHP Post获取不到非表单数据的问题解决办法
  10. GraphViz:2 DOT语法和相关应用