VB.NET版机房收费系统——三层登录

前端之家收集整理的这篇文章主要介绍了VB.NET版机房收费系统——三层登录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

学历三层架构,完成了三层登录,今天有空来总结一下。开始之前先看一张图,一图胜过千言万语。


相比之前写的代码(所有的操作都在一个过程中)使用三层架构的优势就是“高内聚,低耦合”,每个层各司其职,条理清楚,操作修改方便。

下面进入正题,如何实现三层登录

首先要建立三层的命名空间(BLL,DAL,UI(我这里改成了登录窗体),Entity ),从而建立引用和相对应的类,如图所示:



UI层(登陆界面)UI层引用BLL层和Entity层,作用是用于接收用户输入的数据和显示处理后用户需要的数据。

Public Class Form1  
  
    Private Sub butCancel_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles butCancel.Click  
        End  
    End Sub  
  
    Private Sub butOK_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles butOK.Click  
'定义一个实体类对象,将文本框中的内容赋给实体类对象  
        Dim thisUser As Model.User = New Model.User  
        thisUser.user_id = txtUserID.Text.ToString()  
        thisUser.user_pwd = txtUserPWD.Text.ToString()  
'定义一个业务逻辑层对象,根据业务逻辑层返回的结果,通知用户信息  
        Dim uB As BLL.UserBLL = New BLL.UserBLL  
        If uB.query_user(thisUser) Then  
            MsgBox("登录成功!")  
        Else  
            MsgBox("登录失败!")  
        End If  
    End Sub  
End Class  


BLL层(业务逻辑层) BLL层引用DAL层和Entity层,作用是处理数据业务。

Public Class UserBLL  
'定义一个D层的对象  
    Dim db As DAL.UserDB = New DAL.UserDB  
'此函数的作用是返回D层的执行结果  
    Public Function query_user(ByVal model As Model.User) As Boolean  
        Return db.Query_User(model)  
    End Function  
End Class  

DAL层(数据访问层)DAL层引用Entity层,作用是负责操作数据库,针对数据的增添、删除修改、查找等。

Imports System.Data.sqlClient    '导入 System.Data.sqlClient 命名空间
Public Class UserDB
    '数据库连接语句  
    Dim str As String = "Data Source=localhost;Initial Catalog=Charge_sys;Persist Security Info=True;User ID=sa;Password=123"
    'Date sourse= 服务器名;Initial catalog=数据库名;Persist Security Info=True; User ID=用户名;Password=密码
    Dim conn As sqlClient.sqlConnection

    Public Sub New()             '构造函数 建立连接,打开数据库  
        conn = New sqlClient.sqlConnection
        conn.ConnectionString = str
        conn.Open()
    End Sub
    '查询数据库中的用户是否存在  
    Public Function Query_User(ByVal tstUser As Entity.User) As Boolean
        '数据库查询语句  
        Dim sqlstr As String
        sqlstr = "Select * From User_Info Where userID='" & tstUser.user_id & "' And PWD ='" & tstUser.user_pwd & "'"
        '查询  
        Dim sqlcmd As sqlClient.sqlCommand = New sqlClient.sqlCommand(sqlstr,conn)
        Dim myReader As sqlDataReader '定义一个reader用来读数据  
        myReader = sqlcmd.ExecuteReader() '运行你的查询,结果到myReader  
        If myReader.Read() Then '如果查到了数据  
            Return True
        Else
            Return False
        End If

    End Function
End Class


Entity层(实体层)作用是在三层之间传递数据

Public Class User  '存放user的多种属性
    Private name As String  
    Private password As String  
    Private Userid As String  
    Private level As String  
    Private account As String  
'以下为可读写属性  
    Public Property user_name() As String  
        Get  
            Return name  
        End Get  
        Set(ByVal value As String)  
            name = value  
        End Set  
    End Property  
    Public Property user_id() As String  
        Get  
            Return Userid  
        End Get  
        Set(ByVal value As String)  
            Userid = value  
        End Set  
    End Property  
    Public Property user_pwd() As String  
        Get  
            Return password  
        End Get  
        Set(ByVal value As String)  
            password = value  
        End Set  
    End Property  
    Public Property user_level() As String  
        Get  
            Return level  
        End Get  
        Set(ByVal value As String)  
            level = value  
        End Set  
    End Property  
    Public Property user_account() As String  
        Get  
            Return account  
        End Get  
        Set(ByVal value As String)  
            account = value  
        End Set  
    End Property  
End Class  

小结:

  纸上得来终觉浅,绝知此事要躬行。只有经过实践才能真正明白三层的优势和意义在哪里。用三层架构,使每个功能模块清晰可见,调试和修改也很简单方便。学完了三层,我要在三层的基础上结合设计模式,实现七层登录。期待我的下一篇

原文链接:https://www.f2er.com/vb/256403.html

猜你在找的VB相关文章