说三层先说一个小故事。
从前有三家邻居,一家姓张,一家姓李,一家姓王,姓张的和姓李的两家人各有一个儿子,而姓李的家是一个女孩,长得特别的漂亮,于是其他两家的的都想追求这个女孩,两个人人谁也不服谁,于是在那一天,两个人相聚到小树林,打了起来,打得是不相上下,后来两家人因为这个闹得很是不痛快!!这件事情让女孩子知道了,他觉得这两个人不该这样,于是女孩子就去劝说他们两个,而是找到了一个男孩,对他说,我们以前多么的好,现在不该因为我变成这样,在女孩子的劝说之下其中一个男孩子开始有了悔意,于是就说,你帮我传递一个话吧,说我晚上要请客,你可以帮我告诉他吗?女孩子很高兴的将这件事情告诉了另一个男孩子那个男孩子一听觉得自己也有不对的地方,于是让女孩子把他心里面想说让女孩高数那个要请客的男孩子于是两个人又和好了。
女孩是就是实体类,也就是看成了一个整体的惨数,在两个男孩之间进行传递话,从而使两方面的关系变好了。
用一个三层的登陆的小例子来说明吧!
实体类 也就是那个女孩的角色:
Public Class e_UserInfo
Private e_UserName As String
Public Property UserName As String
Get
Return e_UserName
End Get
Set(ByVal value As String)
e_UserName = value
End Set
End Property
Private e_Password As String
Public Property Password As String
Get
Return e_Password
End Get
Set(ByVal value As String)
e_Password = value
End Set
End Property
End Class
//UI层判读层,在这里面定义了一个实体类(女孩进行数据的传递)用于判断
Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
Dim LoginUser As New LoginEntity.e_UserInfo '定义一个实体类对象LoginEntity.e_UserInfo
Dim Bcheck As New LoginBLL.LoginManager '定义一个LoginBLL.LoginManager对象
If Trim(txtUserName.Text) = "" Then
MsgBox("姓名不能空")
Exit Sub
ElseIf Trim(txtPassword.Text) = "" Then
MsgBox("密码不能为空")
Exit Sub
Else
LoginUser.UserName = txtUserName.Text()
LoginUser.Password = txtPassword.Text()
End If
'采集用户信息,展现登录结果
If Bcheck.SelectUIandEntity(LoginUser) = True Then//将数据传递
MsgBox("登录成功!")
Else
MsgBox("登录失败!")
End If
End Sub
//B层的代码进行数据的判断
Imports LoginEntity
Imports LoginDAL.UserDAO
'B层业务处理(逻辑),做判断
Public Class LoginManager
Function SelectUIandEntity(ByVal User As LoginEntity.e_UserInfo) As Boolean
Dim DalUser As New LoginDAL.UserDAO 'D
Dim EntityUser As New LoginEntity.e_UserInfo 'E//定义一个实体类进行将数据从UI层的传递B层
EntityUser.UserName = User.UserName
EntityUser = DalUser.selectUserInfoFormUserInfoTable(EntityUser) // 将数据传递给D层进行查询
'判断操作
If EntityUser.Password = User.Password Then
Return True
Else
Return False
End If
End Function
End Class
Imports System.Data.SqlClient
Imports LoginEntity
//D层的代码
Public Class UserDAO
'连接数据库
Dim sqlConnectStr As String = "server=lizhihua-PC;database=charge_sys;uid=sa;pwd=123456;"
Dim sqlConnection1 As SqlConnection = New SqlConnection(sqlConnectStr)
'自定义检查参数
Function selectUserInfoFormUserInfoTable(ByVal User As LoginEntity.e_UserInfo) As LoginEntity.e_UserInfo//将实体类传递到D层进行查询
Dim sql As String = "select * from User_Info where UserName='" & User.UserName & "'" 'sql语句
Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnection1) '定义sqlCommand对象
Dim read As SqlDataReader '定义sqlDataReader对象
Dim UserDataTable As New DataTable '定义一个DataTable对象
Dim User1 As New LoginEntity.e_UserInfo
Try
sqlConnection1.Open()
read = cmd.ExecuteReader()
UserDataTable.Load(read)
User1.UserName = Trim(UserDataTable.Rows(0).Item("UserName"))
User1.Password = Trim(UserDataTable.Rows(0).Item("PWD"))
'label1.caption = (Trim(UserDataTable.Rows(0).Item("PWD")))
'Print(Trim(UserDataTable.Rows(0).Item("PWD")))
Return User1
Catch ex As Exception
User1.Password = ""
Return User1
Finally
If Not IsNothing(sqlConnection1) Then
sqlConnection1.Close()
End If
End Try
End Function
End Class
三层都有实体类,也就是一个参数 ,这个参数从U层的输入到 B层进行 ,再由B层传到D层进行查询,将查询结果返回到B层进行判断,最后回到UI层显示出来,也就相当于连个男孩子在女孩子的帮助下和好了。