微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

三层登录实例VB.NET版

上一篇博客用的是C#语言敲的三层登录实例,这篇博客就用VB.NET来敲下,正好也熟悉下代码和三层逻辑。

首先,建立相应的数据库


其次,建立如下项目,注意:U层建的是Windows窗体应用程序,其他项目则设置成类库的输出类型。


最后,在所建项目中添加代码

实体层:

''' <summary>
''' 实体层,存放多种属性
''' </summary>
''' <remarks></remarks>
Public Class Login
    '定义UserName属性
    Private _UserName As String
    Public Property UserName As String
        Get
            Return _UserName
        End Get

        Set(value As String)
            _UserName = value
        End Set
    End Property

    '定义PassWord属性
    Private _PassWord As String '
    Public Property PassWord As String
        Get
            Return _PassWord
        End Get
       
        Set(value As String)
            _PassWord = value
        End Set
    End Property




End Class

D层:

' 引用命名空间
Imports System.Data
Imports System.Data.sqlClient
Imports LoginMODEL

'D层,主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,需要引用实体层
Public Class UserDAO
    Public conn As New sqlConnection("server=ZY-PC;database=Login;user id=sa;password =1")          '创建数据库的连接
    Public Function SelectUser(ByVal User As Login) As LoginMODEL.Login         '传实体Login,方便对实体中的参数进行调用
        Dim reader As sqlDataReader         '定义类型为sqlDATAREADER的变量reader
        Dim mUser As New LoginMODEL.Login
        Dim sql As String = "select UserName,passWord from T_Users where UserName=@UserName and PassWord=@PassWord"
        Dim cmd As New sqlCommand(sql,conn)        '创建sqlcommand对象
        cmd.CommandText = sql                       '获取sql语句的具体内容
        cmd.CommandType = CommandType.Text          '获取上述sql语句的具体类型
        cmd.Parameters.Add(New sqlParameter("@UserName",User.UserName))
        cmd.Parameters.Add(New sqlParameter("@PassWord",User.PassWord))
        conn.open()        '打开数据连接
        reader = cmd.ExecuteReader()              '执行查询语句,并生成一个DataReader

        '读取查询到的数据,并返回给相应的属性
        While reader.Read()
            mUser.UserName = reader.GetString(0)            '第一个字段
            mUser.PassWord = reader.GetString(1)            '第二个字段
        End While
        Return mUser               '返回查询到的实体
        conn.Close()              '关闭连接

    End Function
End Class


B层:

Public Class LoginManager
    Public Function UserLogin(ByVal User As LoginMODEL.Login) As LoginMODEL.Login
        Dim uDao As New LoginDAL.UserDAO                '实例化D层中新的UserDAO对象
        Dim mUser As LoginMODEL.Login                  '定义一个类型为实体层参数,用户赋值

        mUser = uDao.SelectUser(User)

        '判断是否查询到记录
        If Isnothing(mUser.UserName) Then
            Throw New Exception("登录失败,请检查用户名和密码!")          '没有记录
        Else
            MsgBox("登录成功,恭喜!","提示框")         '有记录
        End If
        Return mUser            '返回实体

    End Function
End Class


U层:

Public Class Form1

    Private Sub btnLogin_Click(sender As Object,e As EventArgs) Handles btnLogin.Click
        Try
            '获得表现层的数据
            Dim muser As New LoginMODEL.Login              '实例化一个新的实体,用来传递B层的实体
            muser.UserName = txtUserName.Text.Trim           '将用户名传递给实体层的UserName
            muser.PassWord = txtPassWord.Text.Trim            '将密码传递给实体层的PassWord

            '调用B层,登录判断
            Dim mgr As New LoginBLL.LoginManager
            muser = mgr.UserLogin(muser)

        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())              '错误处理
        End Try
    End Sub

End Class



下面我们来看看运行结果







经过这两次“重写”的三层代码实例,不得不说,我对“你”更有感觉了,嘿嘿!

原文地址:https://www.jb51.cc/vb/257578.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐