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

相关文章

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.