vb.net 简单登录界面(三层架构思想)

上篇博客介绍了面向过程思维设计的vb.net登录界面,这篇文章就简单介绍一下我用三层架构思想实现的vb.net登录功能吧,还请高手多多指点,初次使用三层架构思想,使用难免有错误之处!

1.登录界面主要功能

此登录界面只是简单的实现了与数据库连接,登录成功时提示:‘登录成功!’,登录失败时提示:'登录失败!'。单击取消按钮可退出此系统。


2.数据库设计

根据功能介绍,此数据库设计比较简单,在此我只设计了一张表,跟上篇博客中使用的数据库相同,在此展现下数据库表的内容。

UserInfo数据表表结构,如图



我在数据表中添加的几条用户信息,如图


3.在vs2010中,vb.net的登录操作

运用三层架构思想来实现上机登录,不得不提提三层,看到下图了么,是不是对三层又有了深的认识。

三层架构各层之间的引用

  • DAL所在程序集不引用BLL和UI
  • BLL需要引用DAL
  • UI直接引用BLL,可能会间接引用DAL
  • DAL 、BLL、 UI 都需要引用Entity

三层架构的具体应用原则

  • DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理;
  • UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;
  • BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
下面说一下vb.net中登录的操作

看到这幅图了嘛,下面咱来说说各层之间的具体实现。

对UI显示层,界面设计如图

"UI显示层"代码设计

Public Class UserLogin
    '单击确定按钮,判断登录成功与否。
    Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
        Dim LoginUser As New LoginEntity.e_UserInfo     '定义一个LoginEntity.e_UserInfo对象
        Dim Bcheck As New LoginBLL.LoginManager         '定义一个LoginBLL.LoginManager对象

        LoginUser.UserID = txtUserName.Text()
        LoginUser.Password = txtPassword.Text()

        '采集用户信息,展现登录结果
        If Bcheck.SelectUIandEntity(LoginUser) Then
            MsgBox("登录成功!")
        Else
            MsgBox("登录失败!")
        End If
    End Sub

    '退出系统
    Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
        End
    End Sub
End Class

"业务逻辑层"代码设计

Imports LoginEntity
Imports LoginDAL.UserDAO
'B层业务处理(逻辑),做判断
Public Class LoginManager
    Function SelectUIandEntity(ByVal User As LoginEntity.e_UserInfo) As Boolean
        Dim DalUser As New LoginDAL.UserDAO
        Dim EntityUser As New LoginEntity.e_UserInfo

        EntityUser.UserID = User.UserID
        EntityUser = DalUser.selectUserInfoFormUserInfoTable(EntityUser)

        '判断操作
        If EntityUser.Password = User.Password Then
            Return True
        Else
            Return False
        End If
    End Function

End Class

"数据访问层"代码设计

'引用命名空间
Imports System.Data.SqlClient
Imports LoginEntity

Public Class UserDAO
    '连接数据库
    Dim sqlConnectStr As String = "server=waly-pc;database=Login;uid=sa;pwd=123456;"
    Dim sqlConnection1 As SqlConnection = New SqlConnection(sqlConnectStr)

    '自定义检查参数
    Function selectUserInfoFormUserInfoTable(ByVal User As LoginEntity.e_UserInfo) As LoginEntity.e_UserInfo
        Dim sql As String = "select * from UserInfo where UserID='" & User.UserID & "'"      'sql语句
        Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnection1)     '定义sqlCommand对象
        Dim read As SqlDataReader       '定义sqlDataReader对象

        Dim UserDataTable As New DataTable    '定义一个DataTable对象
        Dim User1 As New LoginEntity.e_UserInfo

        Try
            sqlConnection1.Open()
            read = cmd.ExecuteReader()
            UserDataTable.Load(read)
            User1.UserID = UserDataTable.Rows(0)("UserID")         '感觉这一行和下一行代码应该写到B层的,可是写过去总是出错
            User1.Password = UserDataTable.Rows(0)("UserPassword")
            Return User1
        Catch ex As Exception
            User1.Password = ""
            Return User1
        Finally
            If Not IsNothing(sqlConnection1) Then
                sqlConnection1.Close()
            End If
        End Try
    End Function
End Class

"实体层"代码设计

'引用命名空间
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

'声明用户的两个属性值:UserID 和 Password
Public Class e_UserInfo
    Private e_UserID As String
    Public Property UserID As String
        Get
            Return e_UserID
        End Get
        Set(ByVal value As String)
            e_UserID = value
        End Set
    End Property

    Private e_Password As String
    Public Property Password As String
        Get
            Return e_Password
        End Get
        Set(ByVal value As String)
            e_Password = value
        End Set
    End Property
End Class


注:此Demo源码以上传至:VB.NET用户登录(三层架构思想)


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vb.net 是一种面向对象的程序设计语言,用于开发Windows应用程序与网站应用程序。它是基于Visual Basic语言的升级版,具有更强大的功能和更丰富的库支持。 SCDN(Super Content Delivery Network)是一种分布式计算机网络模型,可以高效地分发静态内容。与传统的单服务器模型相比,SCDN利用多台服务器分布在全球各地的节点来缓存和传送资源,提供更加快速和可靠的内容传输。SCDN能够实现页面的快速加载和视频的无缝播放,大大提升了用户的体验。 在vb.net界面开发中,SCDN可以用来加速界面的加载速度和传输效率。通过在界面中引用SCDN提供的静态资源链接,如图片、CSS和JavaScript文件等,可以将这些资源缓存在分布式服务器上,从而减少服务器的压力,加快界面的加载速度。 在vb.net中,可以使用WebClient类或HttpWebRequest类来实现与SCDN服务器的交互。首先,需要创建一个WebClient或HttpWebRequest对象,并设置请求的URL地址。然后,可以使用相应的方法发送请求并接收SCDN服务器返回的响应。通过分析响应内容,可以获取到需要的资源链接,进而在界面中进行加载和显示。 总之,vb.net界面开发中使用SCDN可以提升网页加载速度和用户体验。通过合理地使用SCDN,可以更好地处理静态资源的传输和缓存,从而实现优化界面性能的目标。 ### 回答2: SCDN是指软件定义网络(Software-Defined Networking)的一个标准化界面,VB.NET是一种使用Visual Basic语言开发的软件开发平台。VB.NET可以通过编程方式与SCDN界面进行交互。 使用VB.NET开发SCDN界面可以实现多种功能。首先,可以编写代码来管理和配置网络资源。通过SCDN界面,可以动态地分配网络带宽、设置网络策略、配置安全性等。VB.NET提供了一套丰富的库和类,可以方便地与SCDN界面进行交互,实现这些功能。 其次,通过VB.NET可以实现与SCDN界面的实时交互。可以编写代码来监控网络的流量、延迟、负载等指标,并根据这些指标自动调整网络策略。可以编写代码来实时收集网络故障和异常信息,并及时采取相应的措施。通过VB.NET与SCDN界面的交互,可以实现智能化的网络管理和优化。 此外,VB.NET还可以与其他系统进行集成。可以将SCDN界面与其他系统、应用程序进行对接,实现数据的共享和协同处理。通过VB.NET的编程能力,可以编写代码来处理从其他系统获取的数据,然后将处理结果传递给SCDN界面进行相应的操作。 总之,VB.NET可以通过编程方式与SCDN界面进行交互,实现丰富的网络管理和优化功能,并与其他系统实现集成。通过合理地利用VB.NET和SCDN界面的优势,可以提高网络的可靠性、灵活性和性能。 ### 回答3: VB.NET是一种基于.NET框架的编程语言,而SCDN是软件开发中常见的概念之一,代表着Software Configuration and Data Management(软件配置和数据管理)。下面我将简单介绍一下VB.NET和SCDN的关系。 VB.NET是一种面向对象的编程语言,它是基于VB(Visual Basic)的升级版本。它具有强大的开发工具和丰富的类库,可以用于快速开发各种类型的应用程序。VB.NET是.NET框架的一部分,该框架是一个广泛使用的开发平台,它提供了对不同语言的支持,并为开发人员提供了一系列的功能和工具,用于创建、部署和管理各种类型的应用程序。 SCDN是一种管理软件开发过程中代码和数据的方法和工具。它主要涉及软件代码版本控制、配置管理和数据管理等方面。SCDN的目标是保证软件开发过程中代码和数据的可追溯性、可控性和可管理性。SCDN工具能够帮助开发团队管理代码的变更历史、协同开发、分支合并等操作,从而提高开发效率和代码质量。 在VB.NET开发中,SCDN可以起到重要的作用。通过使用SCDN工具,团队成员可以协同开发和共享代码,每个人都能够了解代码的变更历史并恢复历史版本。此外,SCDN还可以帮助团队管理项目的配置信息,如数据库连接字符串、第三方库的版本等。这样一来,当团队成员切换到不同的开发环境时,只需简单地切换配置文件即可。 总的来说,VB.NET是一种强大的编程语言,而SCDN是软件开发过程中的一种重要管理方法和工具。在VB.NET开发中,SCDN可以帮助团队提高开发效率、保证代码质量和管理配置信息,从而使开发过程更加可控和可管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值