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

相关文章

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)就是指

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

用VB创建开始菜单快捷方式(无需其他DLL)

Option Explicit   Private Sub Command1_Click()   CreateProgManGroup Me, "测试", "test.grp"   CreateProgManItem Me, "d:\ghost.exe", "Ghost"   CreateProgManItem Me, "d:\setupQQ.exe", "QQ"   End