您的位置:首页 > 运维架构 > 网站架构

三层架构学习(一)

2012-01-13 15:05 113 查看
关于机房收费系统的三层架构的图画好了,纠结了好一阵子,终于要写代码了,心里异常兴奋。但是一开始我就碰到钉子了,心里虽然有想法,但是仍然不知道用vb.net如何形容。一开始想着就这样稀里糊涂的过去算了,看看中间能不能做出来,但是刚刚做了两个小功能就发现走不下去了,发现死板硬套是行不通的。我仔细琢磨了一下我的病因,发现了我的问题。
首先就是关于vb.net数据库方面的知识是极为欠缺的,这也告诉其他的同学们,这方面的知识应该仔仔细细看看。之前看vb.net视频的时候就认为:它应该和vb差不多,所以就没有理会,加上那个老师的口音那么浓重,所以总是怨天尤人,也为自己偷懒找了借口。现在想想,看完vb.net视频之后,数据库方面的知识就应该好好梳理一下,比较一下它和vb有哪些不同。希望大家不要为了完成任务而急功近利忽视这些整理的过程。这些知识可以参看我以前的博客,可能会对你有帮助。

其次就是关于面向对象的知识方面的欠缺。我们以前学习的知识大部分是面向过程的,虽然一开始都在激烈的讨论着面向对象的好处,但是真正接触到面向对象的时候理论和实际就分家了,仿佛丈二和尚摸不着头脑一般。总是想着用面向过程的思维来思考问题。关于这方面的问题我建议大家真正操作一番。接下来是我的做的机房收费系统登录功能的一段代码,可能中间还有不足之处,希望大家批评指出:

1、 登录界面的功能:

如果登录成功,则显示提示信息“登录成功”;如果未能登录成功,则显示提示信息“登录失败”

2、 三次架构的框架

3、 各层之间的引用关系:UI层引用BLL层和Entity层,BLL层引用DAL层和Entity层,DAL层引用Entity层

4、 下面是实现过程中的代码

(1)实体层代码设计

'声明user表里的属性
Public Class E_User
Private e_UserID As String
Public Property userID As String
Get
Return e_UserID
End Get
Set(ByVal value As String)
e_UserID = value
End Set
End Property

Private e_PWD As String
Public Property PWD As String
Get
Return e_PWD
End Get
Set(ByVal value As String)
e_PWD = value
End Set
End Property
End Class


(2)数据访问层的代码设计

Public Class D_User
'连接数据库
Dim sqlConnectStr As String = "server=WBX-PC;database=charge_sys;uid=sa;pwd=123;"

'自定义检查参数
Function selectUserInfo(ByVal User As Entity.E_User) As Entity.E_User
Dim sql As String = "select * from User_Info where UserID='" & User.userID & "'"
'初始化具有查询文本和 SqlConnection 的 SqlCommand 类的新实例。
Dim sqlConnection1 As SqlConnection = New SqlConnection()
sqlConnection1.ConnectionString = sqlConnectStr

Dim cmd As SqlCommand = New SqlCommand()
cmd.CommandText = sql
cmd.Connection = sqlConnection1
Dim read As SqlDataReader
Dim UserDataTable As New DataTable
Dim User1 As New Entity.E_User

Try
'打开连接
sqlConnection1.Open()
'返回一个数据集对象
read = cmd.ExecuteReader()
UserDataTable.Load(read)
User1.userID = UserDataTable.Rows(0)("userID")
User1.PWD = UserDataTable.Rows(0)("PWD")
Return User1
Catch ex As Exception
User1.PWD = ""
Return User1
Finally
If Not IsNothing(sqlConnection1) Then
sqlConnection1.Close()
End If
End Try
End Function
End Class
(3)业务逻辑层

'业务处理,做出逻辑判断
Public Class B_Login
Function SelectUIandEntity(ByVal User As Entity.E_User) As Boolean
Dim DalUser As New DAL.D_User
Dim EntityUser As New Entity.E_User

EntityUser.userID = User.userID
EntityUser = DalUser.selectUserInfo(EntityUser)
'判断操作
If EntityUser.PWD.Trim() = User.PWD Then
Return True
Else
Return False
End If
End Function
End Class


(4)界面层

Public Class frmLogin
'单击确定按钮,判断是否登录成功
Private Sub btLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btLogin.Click
Dim LoginUser As New Entity.E_User
Dim Bcheck As New BLL.B_Login
LoginUser.userID = txtID.Text()
LoginUser.PWD = txtPw.Text()

If Bcheck.SelectUIandEntity(LoginUser) Then
MsgBox("登录成功")
Else
MsgBox("登录失败")
End If
End Sub
'退出系统

Private Sub btCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btCancel.Click
End
End Sub
End Class




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: