三层架构学习(一)

关于机房收费系统的三层架构的图画好了,纠结了好一阵子,终于要写代码了,心里异常兴奋。但是一开始我就碰到钉子了,心里虽然有想法,但是仍然不知道用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


 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值