VB.NET版+三层实现登陆

三层已经学了一些时间了,開始认为自己能够用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 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层:

界面设计:

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 Sub
End Class
时间: 2024-10-01 07:40:25

VB.NET版+三层实现登陆的相关文章

vb.net版机房收费系统重构

机房收费系统重构版终于正式开工了! 前几天,刚刚看完三层的视频,在视频中详细的讲解了一个登录功能.天真的我,当时以为三层结构是那么的简单,所以我草草地做完总结之后,就很快就开始机房收费系统的重构了.可是谁想到,当我一打开编程软件,就让我"碰了一鼻子的灰"!首先是不知道vs 怎么用,其次就是看三层的时候,登录的实例使用C#写的,而这次我们需要用VB.NET写,所以对于其中的语法是知之甚少.虽然,前段时间我看了一遍台湾讲师--曹祖胜的<VB.NET 视频>,但是他讲的几乎都是一

用三层实现登陆的实例

在前段时间中学习到了三层的技术,当时对着那个视频做例子,一步一步来,到最后的成功,感觉对三层有了一个很好的理解了.所以就非常赶紧的拿过来了机房系统的登陆来了,结果非常费劲.用自己对三层的理解敲登陆阻力非常的大,不是这里出问题就是那里出问题,而且感觉到了对VB.NET的生疏感觉.所以只能从头开始继续深入的理解三层了,结果对着视频和那些资料,费了好长时间,终于在千呼万唤中实现了VB.NET版的登陆的三层,同时也感觉到了以前对三层的理解的确实肤浅了,特别是对B层和实体层的作用有了很大的认识.接下来展示

VB.NET版机房收费系统—DataGridView应用

事实上,先前刚刚開始敲机房的时候,刚用到DataGridView的时候,总显得力不从心,先要一下子就学会,看了非常多的资料,但是依照写的时候,自己有不知道从什么地方下手,于是,当自己用查询SQL语句,并用DataGridView显示出来,这个功能不能实现,但这里给大家写一下,假设有什么地方不好的会,请大家指出: 第一版: 窗口设计: 须要的控件: DateTimePicker.DataSet.DataGridView 把握的三步骤: 第一步:使用视图,创建出你要的产寻结果的视图(假设是一个表就能

VB.NET版机房收费系统---七仙女之系统登录

VB.NET第一版机房收费系统,告一段落,验收的时候,问题也是大大的存在,没有用上设计模式,什么触发器,存储过程,都没有用上,看看其她小伙伴的,七层实现登录?那是什么东东,相比较我的三层而言,多了两倍还加个一,通过查资料,看博客,憋了好几天,终于,憋出了一个七仙女---七层实现系统登录,七个女儿,各司其职,完美配合,衍生出众多美丽的故事. 从三层猛地跳到七层,有种穿越的感觉,说白了就是不会,又是想逃避的感觉,可是人生在世,有的事情不能随着自己的性子来,喜欢了就去做,不喜欢,就不做,没办法,就一直

vb.net版机房收费——助你学会七层架构(二)反射+抽象工厂

上一篇咱们做好了准备工作,数据库设计和Entity层,现在介绍 4.反射+抽象工厂 反射:用来消除Switch和if的,这里我尽量简单地介绍,以便大家理解.反射其实用起来很简单,你就认为他就是决定:去某个地方找应该要实例化的类是哪个.怎么理解? '************************** '文 件 名:DataAccess '命名空间:Factory '内 容: '功 能: '文件关系: '作 者:邱慕夏 '小 组:邱慕夏 '生成日期:2014-06-09 9:17:51 '版 本

vb.net版机房收费系统——教你七层架构(三)—外观模式

上次我们看到了D层是怎样运作的,现在,我简单演示一下我的外观和B层是如何和U层和D层打交道的. 首先我跟大家说的是我的外观是按照界面功能划分的,粒度有点小,大家在做的时候,记得外观有几个就行了,但是不能没有,U层不能直接调用B层,这样就会增加U层和B层的耦合: '************************** '文 件 名:UserInfo_BLL '命名空间:BLL '内 容: '功 能: '文件关系: '作 者:邱慕夏 '小 组:邱慕夏 '生成日期:2014-06-07 17:36:4

VB.Net版机房收费系统 ---数据库设计

数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程.到底数据库该如何设计,古往今来,每个人都有每个人的想法,所以数据库设计并没有优劣之分,好坏之别,合适的数据库设计就是最好的. 走过自考--<数据库系统原理>,看过耿建玲老师的视频,对数据库设计有了一点了解,VB版的机房收费系统,直接用原来的脚本生成的数据库,当时对数据库设计

VB.NET版机房收费系统---SqlHelper

SqlHelper,最早接触这个词儿的时候,好像是13年的暑假,那个夏天来的比往年来的稍晚一些,呵呵,sqlhelper,翻译成中文就是数据库助手,帮手.百度百科这样对她进行阐述: SqlHelper是一个基于.NET Framework的数据库操作组件.组件中包含数据库操作方法.SqlHelper用于简化我们重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等.SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,

[转]C#三层架构登陆实例

很早之前,就听说过三层结构了.当时只知道 三层结构 是把 系统的 界面  跟 数据库操作等不相关的程序分别开来.原来这么简单的实现,确实传说中的 三层结构啊. 首先,先来看一下是哪三层.表示层(UI,User Interface),业务逻辑层(BLL BusinessLogicLayer),数据访问层(DAL Data Access Layer).三层的划分是物理上的划分. 表示层(UI),这个最容易理解,就是用户看到的主界面. 数据访问层(DAL),也不难理解,主要是负责数据的增删改查. 业务