上篇博客中,我们通过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
我们运行的结果分别是以下三种情况
密码错误
账号错误
登录成功
到此我们的用三层思想所做的登录例子就实现了。
这是初次用三层所实例的例子,如有不足,请大家多多指正。