機房登陸——三層實踐

來源:互聯網
上載者:User

        前邊學習了三層,也寫過了三層的理論知識。後續用機房收費系統的登陸執行個體,實踐了三層的理論知識。疏于思考,所以即使敲了兩、三遍的登陸表單也沒有用。也是我沒有信心將敲的執行個體貼出來的原因。

所以,我總結了:學習不是應付,做做表面功夫。用心+思考。

環境:VB.NET架構下,以傳實體的方式完成。

UI層:即是介面部分。

                                        

實體:在UI層、BLL層、DAL層都需要使用的抽象。

'使用者類:主要涉及使用者的基本屬性(資訊)Public Class UserInfo    Private name As String    Private password As String    Private Userid As String    Private level As String    Private account As String    '以下為可讀寫屬性    '登陸使用者名稱字    Public Property user_name() As String        Get            Return name        End Get        Set(value As String)            name = value        End Set    End Property
    '登陸使用者密碼    Public Property user_pwd As String        Get            Return password        End Get        Set(value As String)            password = value        End Set    End Property
    '登陸使用者ID    Public Property user_id() As String        Get            Return Userid        End Get        Set(value As String)            Userid = value        End Set    End Property
    '登陸使用者層級    Public Property user_level() As String        Get            Return level        End Get        Set(value As String)            level = value        End Set    End Property
    '登陸使用者積分    Public Property user_account() As String        Get            Return account        End Get        Set(value As String)            account = value        End Set    End PropertyEnd Class

DAL層:主要是訪問資料庫,返回查詢結果。

Imports System.Data.SqlClientImports EntityPublic Class LoginDAL    '資料庫連接語句    Dim sCon As String = "Data Source = (local);Initial Catial = Charge_sys;Persist Security Info = True;User ID = sa;Password = 123"    Dim conn As SqlClient.SqlConnection    '執行個體化連接字串,並開啟    Public Sub New()        conn = New SqlClient.SqlConnection        conn.ConnectionString = sCon        conn.Open()    End Sub    '查詢資料庫中的使用者是否存在.    Public Function Query_User(ByVal txtUser As Entity.UserInfo) As Boolean        '定義資料庫查詢語句        Dim commandtext As String        commandtext = "select * From User_Info where userID = '" & txtUser.user_id & "'And PWD = '" & txtUser.user_pwd & "'"        Dim sqlcmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(commandtext, conn)        '定義一個reader來讀資料,查詢使用者是否存在        Dim myReader As SqlDataReader        myReader = sqlcmd.ExecuteReader()        '如果查詢記錄不為空白,則返回真;記錄為空白,返回假。        If myReader.Read() Then            Return True        Else            Return False        End If        '關閉串連        conn.Close()    End FunctionEnd Class

BLL層:主要做邏輯判斷,執行個體化DAL層的類,取得查詢結果。進行邏輯判斷。

Imports EntityImports LoginDALPublic Class ManagerUser    '定義一個D層的對象    Dim db As New LoginDAL.LoginDAL    '此函數的作用是返回D層的執行的結果    Public Function query_user(ByVal model As Entity.UserInfo) As Boolean        Return db.Query_User(model)    End FunctionEnd Class

UI層:收集使用者的資訊,執行個體化BLL層的類,取得判斷結果。返回給使用者。

Imports EntityImports LoginBLLPublic Class Form1    Private Sub btnCancle_Click(sender As Object, e As EventArgs) Handles btnCancle.Click        End    End Sub    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click        '定義一個實體類對象,將文字框中的內容賦給實體類對象        Dim CurrentUser As New UserInfo        CurrentUser.user_id = txtUserName.Text.ToString()        CurrentUser.user_pwd = txtUserPWD.Text.ToString()        '定義一個邏輯層對象,根據商務邏輯層返回的結果,通知使用者資訊        Dim UserBLL As LoginBLL.ManagerUser = New LoginBLL.ManagerUser        If UserBLL.query_user(CurrentUser) Then            MsgBox(True)        Else            MsgBox(False)        End If    End SubEnd Class

至此登陸表單完成。

小結:

1.登陸執行個體可謂,麻雀雖小,五髒俱全。容易理清三層之間的關係及操作。

2.資料庫查詢部分內容可以進行封裝,避免重複操作。

3.邏輯層直接將查詢結果返回,沒有做過多處理,例如對資料庫進行操作。

4.方法、函數都相對簡單,只是返回布爾值。

5.命名方式不是很合理,待科學化。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.