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博客 丁國華