上篇博客介绍了面向过程思维设计的vb.net登录界面,这篇文章就简单介绍一下我用三层架构思想实现的vb.net登录功能吧,还请高手多多指点,初次使用三层架构思想,使用难免有错误之处!

1.登录界面主要功能

此登录界面只是简单的实现了与数据库连接,登录成功时提示:‘登录成功!’,登录失败时提示:'登录失败!'。单击取消按钮可退出此系统。

2.数据库设计

根据功能介绍,此数据库设计比较简单,在此我只设计了一张表,跟上篇博客中使用的数据库相同,在此展现下数据库表的内容。

UserInfo数据表表结构,如图

我在数据表中添加的几条用户信息,如图

3.在vs2010中,vb.net的登录操作

运用三层架构思想来实现上机登录,不得不提提三层,看到下图了么,是不是对三层又有了深的认识。

三层架构各层之间的引用

  • DAL所在程序集不引用BLL和UI
  • BLL需要引用DAL
  • UI直接引用BLL,可能会间接引用DAL
  • DAL 、BLL、 UI 都需要引用Entity

三层架构的具体应用原则

  • DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理;
  • UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;
  • BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
 
      下面说一下vb.net中登录的操作                                                    
       

看到这幅图了嘛,下面咱来说说各层之间的具体实现。

对UI显示层,界面设计如图   

     "UI显示层"代码设计

Public Class UserLogin'单击确定按钮,判断登录成功与否。Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.ClickDim LoginUser As New LoginEntity.e_UserInfo     '定义一个LoginEntity.e_UserInfo对象Dim Bcheck As New LoginBLL.LoginManager         '定义一个LoginBLL.LoginManager对象LoginUser.UserID = txtUserName.Text()LoginUser.Password = txtPassword.Text()'采集用户信息,展现登录结果If Bcheck.SelectUIandEntity(LoginUser) ThenMsgBox("登录成功!")ElseMsgBox("登录失败!")End IfEnd Sub'退出系统Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.ClickEndEnd Sub
End Class

 ②"业务逻辑层"代码设计

Imports LoginEntity
Imports LoginDAL.UserDAO
'B层业务处理(逻辑),做判断
Public Class LoginManagerFunction SelectUIandEntity(ByVal User As LoginEntity.e_UserInfo) As BooleanDim DalUser As New LoginDAL.UserDAODim EntityUser As New LoginEntity.e_UserInfoEntityUser.UserID = User.UserIDEntityUser = DalUser.selectUserInfoFormUserInfoTable(EntityUser)'判断操作If EntityUser.Password = User.Password ThenReturn TrueElseReturn FalseEnd IfEnd FunctionEnd Class

"数据访问层"代码设计

'引用命名空间
Imports System.Data.SqlClient
Imports LoginEntityPublic Class UserDAO'连接数据库Dim sqlConnectStr As String = "server=waly-pc;database=Login;uid=sa;pwd=123456;"Dim sqlConnection1 As SqlConnection = New SqlConnection(sqlConnectStr)'自定义检查参数Function selectUserInfoFormUserInfoTable(ByVal User As LoginEntity.e_UserInfo) As LoginEntity.e_UserInfoDim sql As String = "select * from UserInfo where UserID='" & User.UserID & "'"      'sql语句Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnection1)     '定义sqlCommand对象Dim read As SqlDataReader       '定义sqlDataReader对象Dim UserDataTable As New DataTable    '定义一个DataTable对象Dim User1 As New LoginEntity.e_UserInfoTrysqlConnection1.Open()read = cmd.ExecuteReader()UserDataTable.Load(read)User1.UserID = UserDataTable.Rows(0)("UserID")         '感觉这一行和下一行代码应该写到B层的,可是写过去总是出错User1.Password = UserDataTable.Rows(0)("UserPassword")Return User1Catch ex As ExceptionUser1.Password = ""Return User1FinallyIf Not IsNothing(sqlConnection1) ThensqlConnection1.Close()End IfEnd TryEnd Function
End Class

"实体层"代码设计

'引用命名空间
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text'声明用户的两个属性值:UserID 和 Password
Public Class e_UserInfoPrivate e_UserID As StringPublic Property UserID As StringGetReturn e_UserIDEnd GetSet(ByVal value As String)e_UserID = valueEnd SetEnd PropertyPrivate e_Password As StringPublic Property Password As StringGetReturn e_PasswordEnd GetSet(ByVal value As String)e_Password = valueEnd SetEnd Property
End Class
注:此Demo源码以上传至:VB.NET用户登录(三层架构思想)

vb.net 简单登录界面(三层架构思想)相关推荐

  1. android自动登录简书,Android开发之简单登录界面

    用户界面基础 Android系统的四大组件分别是活动(Activity).服务(Service).广播接收器(Broadcast Receiver).内容提供器(Content Provider). ...

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

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

  3. FLEX PHP 交互 简单登录界面(1)源代码

    简单的不能再简单的flex 与 php 交互的 登录界面 (没有使用mysql) 主要是解决 httpService 的一些问题 代码在附件中 (本例用flex builder 3 和 Deamwea ...

  4. PHPstudy设计简单登录界面

    这次我们设计一个简单的登录界面,首先要HTML设计前端浏览器界面,然后PHP设计验证和数据库交互,Mysql用来存储用户信息. 我们启动PHPstudy,开启WNMP. 首先我们用HTML设计一个简单 ...

  5. Android简单登录界面,保存账号和密码(基础,详解)

    一 问题描述: 制作一个简单的登录界面,并使用文件储存方式储存用户名和密码,在下次打开应用时自动获取上次储存的账户和密码 二 解题思路: 文件储存: 文件存储是Android中最基本的一种数据存储方式 ...

  6. Android开发学习(4)简单登录界面

    在简单的Hello Android 的基础上,我们进一步学习如果制作一个简单的登录界面(不涉及网络交互,用户名密码先固定为admin ),在这里我们学习获取用户名密码,多个Activity之间跳转. ...

  7. C#连接数据库制作简单登录界面

    目标:可视化的登录界面,可实现登录,注册,数据源为SQL server数据库,实现数据库表格内容的读取,写入 C#集成开发环境为visual studio2017 数据库为SQL server数据库 ...

  8. ASP.net 简单登录界面

    一.说明 此文是小白在学习张晨光老师的视频教学<<Asp.Net WEB服务器编程技术>>中做的学习笔记,一些知识点也是跟着教程走的,大家也可以去老师的主页去学习,谢谢大家. ...

  9. php制作登录页面的过程_PHP实现简单登录界面

    PHP学习路上的第一个完整的极小极小的项目,特意做个记录 登录界面: html代码(login.html): 用户登录 用户名: 密 码: 7天内自动登录 login.php:(登陆处理页) head ...

最新文章

  1. Windows 2008 r2域更名
  2. MFCC特征参数提取(一)(基于MATLAB和Python实现)
  3. jquery 只能输入汉字
  4. Hibernate sql查询
  5. Android DLNA
  6. webSphere报错:Error 500: javax.servlet.ServletException: SRVE0207E: Uncaught initialization
  7. phpPgAdmin-5.1安装配置
  8. project 2013使用记录
  9. DevOps使用教程 华为云(14)持续集成 流水线 自动化测试 怎么用
  10. 蓝桥杯省赛2013年Java组B组
  11. 水电缴费系统php源码_水电缴费管理系统
  12. HTML表格边框空隙
  13. 来客在线客服系统源码 支持一键安装
  14. 【超快捷】Windows系统自带的快捷键合集
  15. cad直线和圆弧倒角不相切_CAD圆角、倒角分不清?详细讲解CAD圆角与倒角对象的区别和技巧...
  16. C语言无符号数与有符号数的运算原则
  17. |app自动化测试之Appium问题分析及定位
  18. linux运行fuzzbunch,方程式0day ETERNALBLUE复现之Empire ampamp; Msfconsole下的she...
  19. python名片二维码生成功能的实现 200305
  20. 语文科计算机培训心得体会,语文培训心得体会(精选3篇)

热门文章

  1. scp远程复制文件自动输入密码
  2. 2022骨传导耳机品牌那个好、排名前十的好用的骨传导耳机
  3. HTML、CSS实现手风琴效果
  4. 洛谷 P3387(缩点后+处理 )
  5. kettle 9.x 版本连接资源库,资源库灰色
  6. 当心长角怪生物...闪动你的招牌...
  7. css--盒子的尺寸
  8. 页面提交处理时候显示“正在处理,请稍后……”,防止二次提交功能。
  9. java迅雷下载excel,Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...
  10. STM32CubeMX实现串口DMA中断通信