一:类图和时序图
类图:

时序图:

二:.NET三层框架

U层:LoginUI
B层:LoginBll
D层:LoginDAO
三:各层代码
UI层
Public Class frmLogin
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Try
Dim user As New Entity.User_Entity
Dim check As New LoginBLL.LoginUser
Dim user3 As Boolean
user.UserName = txtUserID.Text.Trim
user.Password = txtPassword.Text
If txtUserID.Text = "" Or txtPassword.Text = "" Then
MessageBox.Show("请填写完整信息")
End If
user3 = check.UserLogin(user)
MessageBox.Show("登录成功")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
Me.Close()
End Sub
End Class
BLL层
Public Class LoginUser
Function UserLogin(ByVal user As Entity.User_Entity) As Boolean
Dim Dao As New LoginDAO.UserDAO
Dim user2 As Boolean
user2 = Dao.SelectUser(user)
If user2 Then
Return True
Else
Throw New Exception("登录失败")
Exit Function
End If
End Function
End Class
DAO层
Imports System.Data.SqlClient
Imports System.Data.SqlClient.SqlCommand
Public Class UserDAO
Dim connDB As String = "server=.;database=mylogin;user id =sa;password=123;"
Dim connsql As SqlConnection = New SqlConnection(connDB)
Function SelectUser(ByVal user As Entity.User_Entity) As Boolean
Dim sql As String = "select * from userinfo where user_id=@UserName and password=@Password;"
Dim cmd As SqlCommand = New SqlCommand(sql, connsql)
cmd.Parameters.Add(New SqlParameter("@UserName", user.UserName))
cmd.Parameters.Add(New SqlParameter("@Password", user.Password))
connsql.Open()
Dim read As SqlDataReader = cmd.ExecuteReader()
If read.Read() Then
Return True
Else
Return False
Exit Function
End If
End Function
End Class
实例类:
Public Class User_Entity
Private strUsername As String
Public Property UserName As String
Get
Return strUsername
End Get
Set(ByVal value As String)
strUsername = value
End Set
End Property
Private strPassword As String
Public Property Password As String
Get
Return strPassword
End Get
Set(ByVal value As String)
strPassword = value
End Set
End Property
End Class
小结:
刚看完三层的视频,跟着视频里边把C#的三层实例敲了敲,简直就是混乱,没有理清楚三层之间数据传递的顺序和规律,结果就是各个层瞎看,越看越乱。
从网上查了些三层的理论知识,对于三层的由来和优缺点有了较好的认识后,重新好好审视三层实例,尝试画图分析,结果慢慢就看出其中的端倪,了解了数据传递的顺序和各个层之间的关系,三层也就不难了,慢慢敲,慢慢琢磨终于完成了初始版本,大家多多批评指教吧。