上一篇博客用的是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.f2er.com/vb/257578.html