【VB.net】三层登陆的代码实现

【VB.net】三层登陆的代码实现,第1张

概述            上篇博客,我们学习了有关三层的一些理论知识。有关UI用户显示层、BLL业务逻辑层、DAL数据访问层, Model层还有疑惑的小伙伴请戳【VB.net】三层的理论认识。             本篇博客是关于VB.net三层登陆功能的代码实现。希望能给你带来一些收获,不足之处,希望你能在评论 里留下宝贵建议。❤        第一步:              我们还是看这张


上篇博客,我们学习了有关三层的一些理论知识。有关UI用户显示层、BLL业务逻辑层、DAL数据访问层,

Model层还有疑惑的小伙伴请戳【VB.net】三层的理论认识。

本篇博客是关于VB.net三层登陆功能的代码实现。希望能给你带来一些收获,不足之处,希望你能在评论

里留下宝贵建议。

第一步:

我们还是看这张有关三层的包图,再次明确,三层之间的引用关系——U层引用了B层和EntityB层引用了

D层和EntityD层引用了Entity。(Entity就是下文的LoginModel 是模型实体的意思)


第二步:

打开VS2012,新建解决方案之后,我们要新建项目,语言选择是Visual Basic。除了LoginUIwindows

窗体类型之外,其它的LoginBLLLoginDALLoginModelEntity)都是类库类型。

新建项目后,在每一层的属性里,都要修改根命名空间的名称。

举个栗子:

例如下图是D层的根命名空间的修改。

D层的根命名空间未修改之前和程序集“LoginDAL”是一模一样的。我们需要在 LoginDAL之间加一个点,变 为Login.DAL。(Do you kNow why?)


按照上述方法,给B层,U层,Model层修改完成后,我们的解决方案就成型啦。

下图为我的解决方案。


第三步:引用贴士

各层之间的引用要正确。Don't forget it

向上滚动滑轮,看好第一张三层的包图。

举个栗子:

U层为例,我们看看如何添加引用。

U层要引用B层和LoginModel。我们就右击LoginUI——>添加引用——>给要引用的解决方案里的项目前打上对勾。

其它的B层,D层大家自己动手尝试一下吧!(LoginModel是不要引用其它项目的,Do you kNow why?)

另外,我们下面的代码中也有涉及到引用。


第四步:各层代码的实现

1.从包含基础信息的LoginModel开始。

LoginModel

Public Class UserInfo    '数据模型的信息,姓名 ID 密码    Private T_Username As String    Public Property Username() As String        Get            Return T_Username        End Get        Set(ByVal value As String)            T_Username = value        End Set    End Property    Private T_ID As Int32    Public Property ID() As Int32        Get            Return T_ID        End Get        Set(ByVal value As Int32)            T_ID = value        End Set    End Property    Private T_Password As String    Public Property Password() As String        Get            Return T_Password        End Get        Set(ByVal value As String)            T_Password = value        End Set    End Property    End Class


2.下面该是数据库D层了,我们首先要做好的工作就是,要建立好数据库,以及新建一张用户表,在表中添加一则

用户信息。

然后,D层中DBunit(连接数据库)的代码:

@H_404_396@imports System.Data.sqlClIEntPublic Class DBUtil '定义ConnString函数为数据库连接 Public Shared Function ConnString() As sqlConnection Dim cnStr As String '连接数据库需要的信息赋值给字符串cnStr cnStr = "Server=LOUISE; Database=VB.net Login; User ID=sa; Password=12" Dim cn As sqlConnection '定义cn为一个数据库连接 cn = New sqlConnection(cnStr) '实例化一个连接 Return cn '返回这个连接 End FunctionEnd Class

UserDAO(数据库相关 *** 作)的代码:

imports System.Data.sqlClIEntimports System.DataPublic Class UserDAO    '定义选择用户函数,user参数为model里的数据模型    Public Function SelectUser(ByVal user As Login.Model.UserInfo) As Login.Model.UserInfo        Dim cn As sqlConnection = DBUtil.ConnString        Dim sql As String        'sql为连接数据库的字符串        sql = "SELECT * FROM T_Users WHERE UserID=@UserID AND Password=@Password"        Dim cmd As sqlCommand = New sqlCommand(sql,cn) '定义一个sqlcommand函数用来传递参数信息        cmd.Parameters.Add(New sqlParameter("@UserID",user.Username))        cmd.Parameters.Add(New sqlParameter("@Password",user.Password))        cn.open() '连接打开        Dim reader As sqlDataReader '定义读取数据库信息的reader        reader = cmd.ExecuteReader 'sqlcommand函数执行reader赋值给reader        Dim uuser As New Login.Model.UserInfo        While (reader.Read())            uuser.ID = reader.GetString(0)            uuser.Username = reader.GetString(1)            uuser.Password = reader.GetString(2)        End While        Return uuser    End FunctionEnd Class

3.下面紧接着我们来看看,B层的LoginManager(登陆业务逻辑)代码:

Public Class LoginManager    '公共函数UserLogin,定义一个实体层User    Public Function UserLogin(ByVal User As Login.Model.UserInfo) As Login.Model.UserInfo  'user 什么意思?        Dim uDAO As New Login.DAL.UserDAO 'B层需要引用D层数据库        Dim uuser As Login.Model.UserInfo 'B层引用Entity,定义一个uuser        uuser = uDAO.SelectUser(User)        If Isnothing(uuser) Then            Throw New Exception("登陆失败,请重新登陆。")        Else            If Isnothing(uuser.Password) Then                Throw New Exception("登陆失败,请输入密码。")            Else                MsgBox("恭喜你,登陆成功啦!")                Return uuser   '返回user实体            End If        End If    End FunctionEnd Class

4.最后我们看看U层(用户显示层)的代码:

Public Class frmlogin    Private Sub btnLogin_Click(sender As Object,e As EventArgs) Handles btnLogin.Click        Dim manager As New Login.BLL.LoginManager        Dim user As New Login.Model.UserInfo        user.Username = txtUsername.Text.Trim        user.Password = txtPassword.Text        manager.UserLogin(user)            End Sub    Private Sub frmlogin_Load(sender As Object,e As EventArgs) Handles MyBase.Load        Me.Acceptbutton = btnLogin    End SubEnd Class

C# 版本的代码,已上传我的资源。

本文小结:

以上是三层的全部代码实现,注释有待提高,三层的理解也在机房重构里愈来愈多。

层层架构,对于程序,对于代码,对于我们都是一个新征程的开始!Keep fighting

总结

以上是内存溢出为你收集整理的【VB.net】三层登陆的代码实现全部内容,希望文章能够帮你解决【VB.net】三层登陆的代码实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存