程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> VB.NET版機房免費零碎之七仙女之零碎登錄

VB.NET版機房免費零碎之七仙女之零碎登錄

編輯:VB.NET

VB.NET版機房免費零碎之七仙女之零碎登錄。本站提示廣大學習愛好者:(VB.NET版機房免費零碎之七仙女之零碎登錄)文章只能為提供參考,不一定能成為您想要的結果。以下是VB.NET版機房免費零碎之七仙女之零碎登錄正文


VB.NET第一版機房免費零碎,告一段落,驗收的時分,問題也是大大的存在,沒有用上設計形式,什麼觸發器,存儲進程,都沒有用上,看看其她小同伴的,七層完成登錄?那是什麼東東,相比擬我的三層而言,多了兩倍還加個一,經過查材料,看博客,憋了好幾天,終於,憋出了一個七仙女---七層完成零碎登錄,七個女兒,各司其職,完滿配合,衍生出眾多美麗的故事。

從三層猛地跳到七層,有種穿越的覺得,說白了就是不會,又是想逃避的覺得,可是人生在世,有的事情不能隨著自己的性子來,喜歡了就去做,不喜歡,就不做,沒方法,就不斷憋,不斷憋,終於,零碎登錄完成了,接上去,總結一下七層零碎登錄的相關知識。俗話說,一張圖,可以表達文字所不能描畫的情感和世界,如今讓我們來看看一下機房免費零碎的包圖,如下:

首先,我們來剖析一下零碎登錄,我們需求做哪些任務,判別用戶能否存在,判別用戶名和密碼能否分歧,登錄成功之後,需求在worklog表中添加一條任務記載。該博文就完成零碎登錄復雜描繪,添加任務記載再此不贅述。接上去,代碼完成局部:

第一層:IDAL-數據接口訪問層,放置接口函數。

<span style="font-size:18px;"><span style="font-size:18px;">'**********************************************
'文 件 名: IUser
'命名空間: IDAL
'內    容: 完成接口
'功    能: 創立接口
'文件關系:
'作    者:丁國華
'小    組:寶貝方案
'生成日期: 2014/7/9 8:44:27
'版本號:V2.0
'修正日志:
'版權闡明:
'**********************************************
Public Interface IUser
    '/// <summary>
    '/// depiction:<選擇用戶>
    '/// </summary>
    '/// <param name="<enUser>"><用戶實體></param>
    '/// <returns>
    '///<前往一個用戶實體> 
    '/// </returns>
    Function SelectUser(ByVal enUser As Entity.UserEntity) As List(Of Entity.UserEntity)
 
End Interface</span></span>

第二層:D層-數據訪問層,經過向SqlHelper中傳遞sql語句來完成詳細的增刪改查等功用。

<span style="font-size:18px;"><span style="font-size:18px;">'**********************************************
'文 件 名: T_UserDAL
'命名空間: DAL
'內    容: 用戶名和密碼判別
'功    能: 查詢用戶名和密碼能否正確
'文件關系:
'作    者:丁國華
'小    組:寶貝方案
'生成日期: 2014/7/9 9:03:17
'版本號:V2.0
'修正日志:
'版權闡明:
'**********************************************
 
Imports System.Data.SqlClient
Imports IDAL
 
Public Class T_UserDAL : Implements IUser
    '/// <summary>
    '/// depiction:<查詢用戶名和密碼能否正確>
    '/// </summary>
    '/// <param name="<enUser>"><用戶實體></param>
    '/// <returns>
    '///<前往一個用戶實體的集合>
    '/// </returns>
    Public Function SelectUser(ByVal enUser As Entity.UserEntity) As List(Of Entity.UserEntity) Implements IUser.SelectUser
        Dim strText As String = "select * from T_User where UserID=@UserID and password=@password"  'sql語句
        Dim cmdType As CommandType = CommandType.Text   '命令類型
        Dim Parameter As SqlParameter()
        '傳參 
        Parameter = {New SqlParameter("@UserID", enUser.userID),
                     New SqlParameter("@password", enUser.password)}
 
        Dim SqlHelper As New SqlHelper  '實例化SqlHelper這個類的一個對象
        Dim dt As New DataTable
        Dim myList As List(Of Entity.UserEntity)
 
        dt = SqlHelper.ExecuteReaderTable(strText, cmdType, Parameter) '調用sqlhelper中executereadertable的辦法
        myList = EntityHelper.convertToList(Of Entity.UserEntity)(dt)
 
        Return myList
    End Function
 
End Class
</span></span>

第三層:Factory-工廠層,大話設計形式中對籠統工廠和配置文件這塊有詳細引見,不明白的小同伴可以查詢《大話設計形式》第一百四十一頁,工廠層的次要作用是使用配置文件和反射完成數據庫的改換功用。

<span style="font-size:18px;"><span style="font-size:18px;">'**********************************************
'文 件 名: DataAccess
'命名空間: Factory
'內    容: 創立接口
'功    能: 創立接口
'文件關系:
'作    者:丁國華
'小    組:寶貝方案
'生成日期: 2014/7/9 8:41:23
'版本號:V2.0
'修正日志:
'版權闡明:
'**********************************************
Imports System.Reflection
Public Class DataAccess
    '/// <summary>
    '/// depiction:<創立用戶接口>
    '/// </summary>
    '/// <param name="<>"><></param>
    '/// <returns>
    '///<前往IUserDAL>
    '/// </returns>
    Public Function CreateIUser() As IDAL.IUser
        Return CType(Assembly.Load("DAL").CreateInstance("DAL.T_UserDAL"), IDAL.IUser)
    End Function
End Class</span></span>

第四層:BLL層-業務邏輯層,查詢用戶名和密碼能否正確,實例化工廠,然後定義接口變量,調用工廠中的辦法,前往一個用戶實體的集合。

<span style="font-size:18px;"><span style="font-size:18px;">Imports IDAL
 
'**********************************************
'文 件 名: T_UserBLL
'命名空間: BLL
'內    容: 業務邏輯層
'功    能: 查詢用戶名和密碼能否正確
'文件關系:
'作    者:丁國華
'小    組:寶貝方案
'生成日期: 2014/7/9 9:02:30
'版本號:V2.0
'修正日志:
'版權闡明:
'**********************************************
 
Public Class T_UserBLL
    '/// <summary>
    '/// depiction:<查詢用戶名和密碼能否正確>
    '/// </summary>
    '/// <param name="<enUser>"><用戶實體></param>
    '/// <returns>
    '///<前往一個用戶實體的集合>
    '/// </returns>
    Public Function SelectUser(ByVal enUser As Entity.UserEntity) As List(Of Entity.UserEntity)
        Dim factory As New Factory.DataAccess
        Dim IUser As IDAL.IUser
        Dim myList As List(Of Entity.UserEntity)
 
        IUser = factory.CreateIUser()
        myList = IUser.SelectUser(enUser)
 
        Return myList
 
    End Function
End Class
</span></span>

第五層:Facade-外觀層,《大話設計形式》一百零三頁有詳細的相關引見。

<span style="font-size:18px;"><span style="font-size:18px;">'**********************************************
'文 件 名: LoginFacade
'命名空間: Facade
'內    容:
'功    能:
'文件關系:
'作    者:丁國華
'小    組:寶貝方案
'生成日期: 2014/7/9 8:41:05
'版本號:V2.0
'修正日志:
'版權闡明:
'**********************************************
 
Public Class LoginFacade
    '/// <summary>
    '/// depiction:<選擇用戶>
    '/// </summary>
    '/// <param name="<enUser>"><用戶實體></param>
    '/// <returns>
    '///<前往一個用戶實體的集合>
    '/// </returns>
 
    Public Function SelectUser(ByVal enUser As Entity.UserEntity) As List(Of Entity.UserEntity)
        Dim userBLL As New BLL.T_UserBLL
        Dim myList As List(Of Entity.UserEntity)
 
        myList = userBLL.SelectUser(enUser)
 
        If myList.Count = 0 Then
            Throw New Exception("用戶名或密碼輸出錯誤")
        Else
            Return myList
        End If
    End Function
End Class</span></span>

前往欄目頁:

第六層:UI層-用戶顯示層,U層擔任數據的輸出與輸入,調用Facade層驗證用戶類的查詢辦法來確認該用戶能否存在,最後經過調用Facade層的辦法登錄。

<span style="font-size:18px;"><span style="font-size:18px;">Imports System.Windows.Forms
 
'**********************************************
'文 件 名: frmLogin
'命名空間: UI
'內    容: 用戶顯示層
'功    能: 確認用戶能否存在
'文件關系:
'作    者:丁國華
'小    組:寶貝方案
'生成日期: 2014/7/8 17:51:07
'版本號:V2.0
'修正日志:
'版權闡明:
'**********************************************
Public Class frmLogin
 
    Public Shared enLogin As New Entity.UserEntity
 
    '/// <summary>
    '/// depiction:<確認用戶能否存在>
    '/// </summary>
    '/// <param name="<>"><></param>
    '/// <returns>
    '///<登錄失敗給出提示,登錄成功進入主界面>
    '/// </returns>
    Private Sub btnConfirm_Click(sender As Object, e As EventArgs) Handles btnConfirm.Click
        Dim facade As New Facade.LoginFacade
        Dim myList As New List(Of Entity.UserEntity)
        Dim enUser As New Entity.UserEntity      '封裝實體
        Dim flag As Boolean
        Try
            enUser.userID = txtUserName.Text.Trim()
            enUser.password = txtPassword.Text.Trim()
 
            myList = facade.SelectUser(enUser)
 
            If myList.Count > 0 Then
                MsgBox("登錄成功")
 
                Dim enWorklog As New Entity.WorklogEntity
                enWorklog.userID = txtUserName.Text.Trim()
                enWorklog.loginDate = CStr(Format(Now(), "yyyy-MM-dd"))
                enWorklog.loginTime = CStr(Format(Now(), "HH:mm:ss"))
                enWorklog.status = "正在值班"
                enWorklog.computer = Environment.GetEnvironmentVariable("USERNAME")
 
                flag = facade.InsertWorklog(enWorklog)
 
                enLogin.userID = myList.Item(0).userID
                enLogin.level = myList.Item(0).level
 
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
            txtUserName.Focus()
            txtUserName.SelectAll()
            txtPassword.Text = ""
 
        End Try
    End Sub
    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub
End Class
</span></span>

第七層:SqlHelper,後面的博文有相關引見,在這裡,就不逐個引見了。自此,一個小小的登錄功用就完成了,在七層登錄還沒有成型的時分,各種糾結,各種不想做,有種快到臨界點的覺得,可是走過之後,發現,這個臨界點是翻開三界的結界,翻開之後,發現這個世界如此美麗多彩。一如七仙女的故事,我們的七層登錄也是各司其職,在自己的任務崗位實行著自己的職責。

第二版機房免費零碎,未完,待續......

作者:csdn博客 丁國華

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved