菜鸟编程VB.NET登录窗体之三层思想


上篇博客中,我们通过VB.NET利用面向过程思想将登录实例实现了,这次我们将三层思想加入登录实例,下面来看下我们的实现过程,欢迎大家指正。

关于我们登录所用的数据库我们还是用上篇博客中所建立的数据库,所用关于数据库的信息我就不再这里重复了。

下面我们来看下我们的具体实现。

首先我们先来看下我们三层的项目。

接下来是它们之间的引用关系


UI层引用BLL层和实体层

BLL层引用DAL层和实体层

DAL层引用实体层

接下来看下我们的界面

再往下就是我们的代码部分


首先我们先看的是实体层:

Public Class ModelUser
    '声明私有字段
    Private _UserName As String
    Private _UserPWD As String

    '声明数据库表中的字段信息
    Public Property strUser_Name() As String
        Get
            Return _UserName
        End Get
        Set(value As String)
            _UserName = value
        End Set
    End Property

    Public Property strUser_PWD() As String
        Get
            Return _UserPWD
        End Get
        Set(value As String)
            _UserPWD = value
        End Set
    End Property
End Class


然后是UI

Public Class frmLogin
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
        '输入框进行限制 
        If txtUserName.Text = "" Then
            MsgBox("账号输入不得为空!", MsgBoxStyle.Information)
        Else
            If txtPWD.Text = "" Then
                MsgBox("密码输入不得为空!", MsgBoxStyle.Information)
            End If
        End If

        Dim ModelUi As Model.ModelUser = New Model.ModelUser '声明并实例化实体对象
        Dim BCheck As Login.BLL.BManage = New BLL.BManage '声明并实例化

        '将界面信息传入实体
        ModelUi.strUser_Name = txtUserName.Text.Trim
        ModelUi.strUser_PWD = txtPWD.Text

        '将B层传来的结果进行显示

        If BCheck.LoginManage(ModelUi) = ChrW(1) Then
            MsgBox("账号输入错误!")
            txtUserName.Focus()
            txtUserName.SelectAll()
        ElseIf BCheck.LoginManage(ModelUi) = ChrW(2) Then
            MsgBox("登录成功!")
        ElseIf BCheck.LoginManage(ModelUi) = ChrW(3) Then
            MsgBox("密码输入错误!")
            txtPWD.Focus()
            txtPWD.SelectAll()

        End If

    End Sub

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub
End Class



接下来是BLL

Public Class BManage
    Public Function LoginManage(ByVal User As Login.Model.ModelUser) As Char
        '声明并实例化D层和实体层的方法
        Dim DalManage As Login.DAL.DalManage = New DAL.DalManage
        Dim ModelBll As Login.Model.ModelUser = New Model.ModelUser

        '将U层传来的信息传入D层
        ModelBll.strUser_Name = User.strUser_Name
        ModelBll = DalManage.DalManage(ModelBll)

        '将D层传来的信息与U层传来的信息进行逻辑判断
        If ModelBll.strUser_PWD = Nothing Then '账号错误
            Return ChrW(1)
        Else
            If ModelBll.strUser_PWD = User.strUser_PWD Then '登陆成功
                Return ChrW(2)
            Else
                Return ChrW(3) '密码错误

            End If
        End If
    End Function

End Class


最后是我们的DAL

Public Class DalManage
    '数据源连接
    Dim cnStr As String = "data source=zwk-PC;initial catalog=SanCeng;user id=sa;password=zwk;"
    Dim cn As SqlClient.SqlConnection = New SqlClient.SqlConnection(cnStr)

    Public Function DalManage(ByVal User1 As Login.Model.ModelUser) As Login.Model.ModelUser
        '进行数据查询 查询数据放到DataReader中
        cn.Open()
        Dim strSQL As String = "select * from TLoginUser where strUser_ID='" & User1.strUser_Name & "'"
        Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(strSQL, cn)
        cmd.CommandText = strSQL
        Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader()

        '声明并实例化实体类
        Dim ModelDal As Login.Model.ModelUser = New Model.ModelUser

        '从DataRead中查询信息,并返回实体类
        Try
            If dr.Read() Then
                ModelDal.strUser_PWD = dr("strUser_PWD").ToString()
                Return ModelDal
            Else
                Return ModelDal
            End If
        Catch ex As Exception
            Return ModelDal
        Finally
            dr.Close()
            cn.Close()
        End Try
    End Function
End Class


我们运行的结果分别是以下三种情况


密码错误

账号错误

登录成功


到此我们的用三层思想所做的登录例子就实现了。


这是初次用三层所实例的例子,如有不足,请大家多多指正。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值