VB.net三层登录

2024-08-26 11:58
文章标签 登录 net 三层 vb

本文主要是介绍VB.net三层登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:真是欠的债迟早都要还。因为期末那段时间自己看视频的时候没有好好理解看着人家的代码就照敲,导致这次自己用VB.NET实现三层的时候遇到各种问题。

 

 

最大的问题:三层里面U层还有D层每层都有自己的实体,而且数量还不少。这也就罢了,可是他们三层之间需要通过实体实现沟通,这样调用哪个实体或者参数的问题就来了。此外他们是如何进行沟通的呢?

 

 

经过这几天的琢磨,三层的思想我才渐渐地领悟。原来他们之间的沟通就是通过实体调用各层的方法来实现的。而在参数这一块,

光说不练假把式,下面看看我VB.NET版本的三层登录吧。


先让我们看看U层的代码


Imports Model
Imports BLLPublic Class UIPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles btnOK.ClickDim User As New Model.UserModel '用来接收用户输入的用户名还有密码Dim UserB As Model.UserModel '用来接收B层返回的值User.UserName = txtUserName.TextUser.Password = txtPassword.TextDim mrg As New BLL.LoginBll() '实例化B层登录的一个类UserB = mrg.UserLogin(User) '调用B层的方法C传递User,并且将B层返回的值赋给UserB If UserB.UserName Is Nothing ThenMessageBox.Show("登录失败")ElseMessageBox.Show("登录成功" + User.UserName)End IfReturnEnd Sub
End Class


<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">接下来看看B层的</span>


Imports Model
Imports DLL.UserDPublic Class LoginBllPublic Function UserLogin(ByVal User As UserModel) As Model.UserModel '这里的UserModel指的是User参数返回值的类型。Dim users As New UserModelDim UserD As New DLL.UserDusers = UserD.SelectUser(User)If users.Password Is Nothing ThenThrow New Exception("登录失败")End IfReturn usersEnd Function
End Class


接下来就是D层的


首先是数据库连接的类


Public Class DataConPublic Shared Function connstring() As Stringconnstring = "Server=.;Database=Login;User ID=sa;Password=123"End FunctionEnd Class


Imports System.Data
Imports System.Data.SqlClientImports ModelPublic Class UserDPublic Function SelectUser(ByVal User As UserModel) As UserModelDim connd As New SqlConnection '实例化一个SQL类型的连接Dim cmd As New SqlCommand '实例化一个SQL命令(包括增删改查)connd = New SqlConnection(DataCon.connstring) 'connd调用数据库连接方法cmd.Connection = connd '指定cmd的连接cmd.CommandText = "select * from Users Where UserName=@UserName and Password=@Password" '指定cmd命令的类容cmd.Parameters.Add(New SqlParameter("@UserName", User.UserName))cmd.Parameters.Add(New SqlParameter("@Password", User.Password))cmd.CommandType = CommandType.Textconnd.Open()Dim reader As SqlClient.SqlDataReader '定义一个Reader用来保存查询结果reader = cmd.ExecuteReader()Dim UserD As New Model.UserModel '定义一个UserD来保存Reader的结果While (reader.Read())If (UserD) Is Nothing ThenUserD = New UserModelEnd IfUserD.UserName = reader.GetString(1)UserD.Password = reader.GetString(2)End Whileconnd.Close()Return UserD '返回UserD给B层然后进行判断。End FunctionEnd Class



跟这些相比实体层就比较简单了。


Public Class UserModelPublic _userName As StringPublic Property UserName() As StringGetReturn _userNameEnd GetSet(ByVal value As String)_userName = valueEnd SetEnd PropertyPublic _password As StringPublic Property Password() As StringGetReturn _passwordEnd GetSet(ByVal value As String)_password = valueEnd SetEnd Property
End Class


反思:东西多了看着就觉得很复杂,若是你在敲三层的时候也和我一样遇到类似的问题,建议你先多多调试成功的三层代码看看他们一步步是如何实现的,然后自己可以先敲U层和B层。现在回头来看三层,就觉得他是打包好了三个类模板,他们之间的沟通主要就是实体的方法调用来实现。


这篇关于VB.net三层登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108499

相关文章

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

.NET利用C#字节流动态操作Excel文件

《.NET利用C#字节流动态操作Excel文件》在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据,本文将演示如何在.NET平台使用C#通过字节流创建,读取,编辑及保... 目录用C#创建并保存Excel工作簿为字节流用C#通过字节流直接读取Excel文件数据用C#通过字节

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指