1. 程式人生 > >VB.NET版+三層實現登陸

VB.NET版+三層實現登陸

open() util rgb 減少 nbsp not exec name p s

三層已經學了一些時間了,開始認為自己能夠用C#敲代碼了,就用C#寫了一個實現登陸的,真正再用在機房中。還是認為非常吃力的,所以。決定用vb.net敲了。以下是我用vb.net實現的登陸。能夠給大家做一些參考。

技術分享技術分享

這是構架的三層

數據庫中的表T_User_DAL:UserI。Level,Password,Head,computer

首先看一下

Entity層:

Public Class UserInfoEntity
#Region "定義變量"
    Private _userID As String
    Private _level As String
    Private _Head As String
    Private _password As String
#End Region
    Public Property UserID() As String            ‘將T_User_DAL表中的每個實體都傳上去,實體是依據表來建的,不是功能
        Get
            Return _userID
        End Get
        Set(value As String)
            _userID = value
        End Set
    End Property
    Public Property Level() As String
        Get
            Return _level
        End Get
        Set(ByVal value As String)
            _level = value
        End Set
    End Property
    Public Property Head() As String
        Get
            Return _Head
        End Get
        Set(value As String)
            _Head = value
        End Set
    End Property
    Public Property Password() As String
        Get
            Return _password
        End Get
        Set(value As String)
            _password = value
        End Set
    End Property


End Class


DAL層:

為了可以減少耦合一定要將連接字符串拿出來。不要每個DAL中都寫一邊。


Imports System.Data
Imports System.Data.SqlClient
Public Class SqlUtil
    Public Shared Function connstring() As String
        ‘connstring = "Server=192.168.24.183;Database=ReconsitutionCharge_sys;User ID=sa;Password=123456"     ‘會出現無法識別userid的錯誤
        connstring = "Server=mx; Database=ReconsitutionCharge_sys; User ID=sa; Password=123456"         ‘連接SQL的字符串
    End Function

End Class






T_User_dal表DAL層代碼:

Imports System.Data.SqlClient
Imports System.Data
Public Class UserDAL
    Public Function SelectUser(ByVal user As Entity.UserInfoEntity) As Entity.UserInfoEntity
        Dim conn As New SqlConnection                          ‘定義連接打開數據庫
        Dim cmd As New SqlCommand                              ‘定義數據庫命令
        conn = New SqlConnection(SqlUtil.connstring())         ‘實例化SQLUntil中返回的字符串 
        cmd.Connection = conn


        cmd.CommandText = "Select * From T_User_DAL Where [email protected] and [email protected]"        ‘存儲過程


        cmd.Parameters.Add(New SqlParameter("@UserID", user.UserID))                        ‘賦值,傳參
        cmd.Parameters.Add(New SqlParameter("@Password", user.Password))
        cmd.CommandType = CommandType.Text                                                  ‘CommandText 屬性設置為存儲過程的名稱。當調用 Execute 方法之中的一個時,該命令將運行此存儲過程
        conn.Open()                                                                         ‘打開連接




        Dim reader As SqlClient.SqlDataReader                                               ‘讀取數據庫中的表
        reader = cmd.ExecuteReader()


        Dim users As New Entity.UserInfoEntity                                              ‘實例化實體


        While (reader.Read())
            ‘If users Is Nothing Then
            ‘    user = New Entity.UserInfoEntity
            ‘End If
            users.UserID = reader.GetString(reader.GetOrdinal("UserID"))
            users.Password = reader.GetString(reader.GetOrdinal("Password"))
        End While
        conn.Close()
        Return users
    End Function
End Class



BLL層:

Public Class LoginBLL
    Function UserLogin(ByVal user As Entity.UserInfoEntity) As Entity.UserInfoEntity
        Dim uDAL As New DAL.UserDAL                                 ‘實例化了DAL中的UserDAL
        Dim users As New Entity.UserInfoEntity                      ‘實例化了Entity層信息表

        users = uDAL.SelectUser(user)                               ‘selectUser是返回一個Entity類的,給它賦值user
        Return users                                                ‘返回users實體
    End Function

End Class



UI層:

界面設計:

技術分享

技術分享

技術分享


   Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
        Dim mgr As New BLL.LoginBLL             ‘實例業務層
        Dim user As New Entity.UserInfoEntity   ‘實例實體
        Dim users As Entity.UserInfoEntity      ‘接收實體,用於接收UserLogin()返回的數據類型,假設沒有New就不是實例化


        user.UserID = txtUserID.Text.Trim()     ‘給實體層傳入值
        user.Password = TxtPassword.Text.Trim()
        If txtUserID.Text = "" Then             ‘推斷輸入是否正確
            MsgBox("username不能為空!")
            Return
        End If

        If TxtPassword.Text = "" Then
            MsgBox("password不能為空!")
            Return
        End If

        Try                                    ‘users接收實體
            users = mgr.UserLogin(user)

            If (users.UserID Is Nothing And users.Password Is Nothing) Then      ‘假設users不為空。則登陸成功!
                MsgBox("登陸失敗,username和password不匹配")
                Return
            Else
                MsgBox("登陸成功。登陸用戶:" + user.UserID)
            End If
        Catch ex As Exception
            MsgBox(ex.Message())
        End Try
    End Sub
End Class


VB.NET版+三層實現登陸