標籤:rom uda 技術分享 public 介面設計 span exce ons 定義變數
三層已經學了一些時間了,開始認為自己能夠用C#敲代碼了,就用C#寫了一個實現登陸的,真正再用在機房中。還是認為非常吃力的,所以。決定用vb.net敲了。以下是我用vb.net實現的登陸。能夠給大家做一些參考。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1bXV4aWEwOTIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
這是構架的三層
資料庫中的表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 PropertyEnd Class
DAL層:
為了可以減少耦合一定要將連接字串拿出來。不要每個DAL中都寫一邊。
Imports System.DataImports System.Data.SqlClientPublic 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 FunctionEnd Class
T_User_dal表DAL層代碼:
Imports System.Data.SqlClientImports System.DataPublic 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 FunctionEnd 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 FunctionEnd Class
UI層:
介面設計:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl1bXV4aWEwOTIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
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 SubEnd Class
VB.NET版+三層實現登陸