本文主要是介绍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三层登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!