說三層先說一個小故事。
從前有三家鄰居,一家姓張,一家姓李,一家姓王,姓張的和姓李的兩家人各有一個兒子,而姓李的家是一個女孩,長得特別的漂亮,於是其他兩家的的都想追求這個女孩,兩個人人誰也不服誰,於是在那一天,兩個人相聚到小樹林,打了起來,打得是不相上下,後來兩家人因爲這個鬧得很是不痛快!!這件事情讓女孩子知道了,他覺得這兩個人不該這樣,於是女孩子就去勸說他們兩個,而是找到了一個男孩,對他說,我們以前多麼的好,現在不該因爲我變成這樣,在女孩子的勸說之下其中一個男孩子開始有了悔意,於是就說,你幫我傳遞一個話吧,說我晚上要請客,你可以幫我告訴他嗎?女孩子很高興的將這件事情告訴了另一個男孩子那個男孩子一聽覺得自己也有不對的地方,於是讓女孩子把他心裏面想說讓女孩高數那個要請客的男孩子於是兩個人又和好了。
女孩是就是實體類,也就是看成了一個整體的慘數,在兩個男孩之間進行傳遞話,從而使兩方面的關係變好了。
用一個三層的登陸的小例子來說明吧!
實體類 也就是那個女孩的角色:
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層顯示出來,也就相當於連個男孩子在女孩子的幫助下和好了。