加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

三层登录实例(VB.NET版)

发布时间:2020-12-17 07:48:33 所属栏目:百科 来源:网络整理
导读:上一篇博客用的是C#语言敲的三层登录实例,这篇博客就用VB.NET来敲下,正好也熟悉下代码和三层逻辑。 首先 ,建立相应的数据库 其次 ,建立如下项目,注意:U层建的是Windows窗体应用程序,其他项目则设置成类库的输出类型。 最后 ,在所建项目中添加代码 实

上一篇博客用的是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



下面我们来看看运行结果







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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读