上次我们说到了。怎样利用三层架构去数据库中删除数据。这次我们就来谈谈如何去数据库中查找数据。事实上在上篇文章中也涉及到了查找,但那是将整个表中的记录都显示出来,而我们这次来查找我们所须要的某一条记录。

1、UI层

首先是界面,还记得我们第一次加入的“王菲”的那条记录吗。今天我们就将它查出来

        private void button1_Click(object sender, EventArgs e){//实例化一个模型对象,用来向D层传递信息Login.Model.UserInfo user = new Login.Model.UserInfo();//实例化一个模型对象。用来从D层接受信息Login.Model.UserInfo User = new Login.Model.UserInfo();//讲參数传给该对象user.UserName = txtUserName.Text.Trim();//实例化B层UserQuery.BLL.QueryBLL  userQ = new UserQuery.BLL.QueryBLL ();try{//将该对象传给B层处理User = userQ.UserQuery(user);}catch(Exception ex){MessageBox.Show(ex.Message);return;}txtInformation.Text = "用户ID:" + User.ID + "\r\n" + "用户姓名:" + User.UserName + "\r\n" + "用户password:" + User.Password + "\r\n" + "用户Email:" + User.Email;}}

2、BLL层

    public class QueryBLL{public Login.Model.UserInfo UserQuery(Login.Model.UserInfo user){//实例化D层UserQuery.DAL.QueryDAL UserQD = new UserQuery.DAL.QueryDAL();//实例化用户Login.Model.UserInfo User = new Login.Model.UserInfo();try{//让D层推断信息是否正确User = UserQD.QueryDao(user);}catch(Exception ex){throw ex;//将错误信息抛给U层}//返回用户信息return User;}}

3、DAL层

        public Login.Model.UserInfo QueryDao(Login.Model.UserInfo user){using (SqlConnection conn=new SqlConnection(DBUtil.ConnString)){SqlCommand cmd = conn.CreateCommand();      //用于处理数据库//推断username是否存在cmd.CommandText = @"SELECT * FROM USERS WHERE UserName=@UserName";//获得查询语言cmd.CommandType = CommandType.Text;//加入查询语言中的參数cmd.Parameters.Add(new SqlParameter("@UserName", user.UserName));conn.Open();//查询并返回结果SqlDataReader reader = cmd.ExecuteReader();//声明一个返回实例Login.Model.UserInfo User = new Login.Model.UserInfo();          try{//假设username存在。就返回用户信息if (reader.Read()){//获取用户信息User.ID = reader.GetInt32(0);User.UserName = reader.GetString(1);User.Password = reader.GetString(2);//假设邮箱不为空,则取出if (!reader.IsDBNull(3)){User.Email = reader.GetString(3);}}else{//假设不存在,就抛出错误throw new Exception("该用户不存在。");  }//断开连接conn.Close();}catch (Exception ex){throw ex;  //将错误信息抛给D层处理}return User;  //返回用户信息}}

4、结果

5、小结

这次简单的查询过程就跟寄信似的,首先我们(U层)要将写好的信装入信封(即将username传入实体)。然后交给邮递员(B层)处理,最后到达收信人(D层)手中。经过收信人的处理,将其回信(要返回的信息)再次装入信封(返回实体)。然后再由邮递员寄给我们,这样我们就能依据回信,做出对应的处理。

当然。假设这个过程出现什么错误,邮递员也会告知我们,像这样,我们通过邮递员就行实现方便的交流,通过我们的合作就行将一个复杂的工作做得井然有序。因此,我相信。仅仅要我们大家一起努力,这个世界一定变得更加美好。

转载于:https://www.cnblogs.com/gccbuaa/p/7233585.html

三层架构与四大天王之——查相关推荐

  1. 三层架构与四大天王之——增

    1.上集回顾   上篇文章我们介绍了三层架构的运行机制,其中包含了对实体类的理解,而后又以简单的登录为例展示了一下,接下来就让我们看看三层架构与"四大天王"的交互. 所谓的四大天王 ...

  2. java从入门到精通二十四(三层架构完成增删改查)

    java从入门到精通二十四(三层架构完成增删改查) 前言 环境准备 创建web项目结构 导入依赖和配置文件 创建层次模型 实现查询 实现添加 实现修改 完成删除 做一个用户登录验证 会话技术 cook ...

  3. 三层架构与四大天王之——改

    今天让我们一起来认识一下"四大天王"中的最后一个--改动数据库中的信息.为什么要把改动放在查询之后呢?这是由于要想改动首先就得将信息查出来.所以查询是改动的前提. 1.UI层 首先 ...

  4. 三层架构,四大天王——删

    第一部分我们介绍,间数据库的四个功能--增加.这一次,我们将讨论除记录的功能. 1.刷新       要想删除数据库中的记录,首先我们应该将表中的数据显示出来,所以此功能的实现方法例如以下       ...

  5. 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!

    一丶使用三层架构创建一个简单的MVC登录操作 1.首先,创建一个项目以及BLL层.DAL层.Entity层,如图一: 图一 2.创建一个数据库如图二: 图二 3基本工作已做好,接下来就编BLL层.DA ...

  6. JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用)

    JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 文章目录 JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 环境搭建 ...

  7. 一个简单实用的,基于EF的三层架构

    到底什么样的框架才是好框架呢?或许不同人有不同的看法.我个人觉一个好的框架,最重要的要是简单实用,能快速适开发,可维护性高(不会出现复制黏贴的代码),并能快速响应各种业务场景的变化的框架,同时性能不会 ...

  8. 什么是三层架构?简单的介绍三层架构!

    三层架构(3-tierarchitecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(Presentation layer).业务逻辑层(Business Logic Layer). ...

  9. 三层架构(我了解并详细分析)

    三层架构已经学到了一些时间,一直想做一个比較完整.比較完美的总结.可是左思右想,不知道怎样下笔.都说万事开头难嘛.今天整理了一下凌乱的思路.哎,还是没整理好,想到哪就说到哪吧. 刚開始学习的人非常不理 ...

最新文章

  1. 为开源软件评级—商业就绪分级(BRR)模型
  2. mysql创建表和数据库
  3. (四)Decorator设计模式解决GET/POST请求的乱码问题(转)
  4. 如何在零停机的情况下迁移 Kubernetes 集群
  5. 【ACM】最少乘法次数 - 树
  6. 【数据挖掘】数据挖掘和数据分析基础
  7. HDU-1285-确定比赛名次
  8. oracle出错如何备份数据,Oracle数据库备份失败, 出错代码:0xe0001402
  9. html画布画带百分比饼状图,echart.js如何画带百分比的饼状图
  10. Centos7修改网卡名称
  11. Android取手机号码
  12. Alias Method——高效的离散分布采样算法
  13. 计算机硬件4核是什么意思,8核,6核,4核和双核CPU是什么意思?
  14. 618电商大数据分析可视化报告
  15. 入手python难不难_Python难不难?容易学吗?
  16. TMC2208电机驱动简介
  17. 等额本金计算公式解析
  18. 设置默认收货地址【项目 商城】
  19. 三七总皂苷脂质体纳米粒子修饰负载RNA核糖核酸(实验注意事项)
  20. 七牛云 php 服务器,本地文件上传到七牛云服务器示例(七牛云存储)

热门文章

  1. 3D脚本 maxscript入门教程(6)
  2. String StringBuilder StringBuffer 对比 总结得非常好
  3. DHTML【5】--HTML
  4. linux文件描述符设置
  5. 机房日常技术总结——Windows篇
  6. 写程序的一些感想和教训
  7. 如何做一份出色的竞品分析?(一)
  8. 学术写作强力推荐语法检查神器:marking mate
  9. 2018.3,GC可控了
  10. bzoj3993: [SDOI2015]星际战争(二分+最大流)