三层VB.NET实例

5 篇文章 0 订阅
3 篇文章 0 订阅

之前三层的理论已经给大家讲的差不多 了,现在用我们的理论加上我们的实践,来实现一个三层的小例子。

现在来为大家实现一个登录的实例。首先,创建我们的数据库:


设计两个表:



创建此数据库的目的是:用户实现登陆后,要在Score表中自动添加积分。

之后运用三层,将项目分为下面四个:包括UI(界面)层,BLL(逻辑)层,DAL(数据访问)层和Entity(实体)层。


依次展示它们的代码片段:

B层:

Imports LoginEntity

''' <summary>
''' 
''' </summary>
''' <remarks></remarks>

Public Class Login
    Public Function SelectUserLogin(ByVal user As LoginEntity.Users, ByVal forscore As LoginEntity.Scores) As LoginEntity.Users
        Dim dUser As New LoginD.Users     '实例化访问users 表的对象
        Dim eUser As LoginEntity.Users  '定义一个用户
        Dim eScore As New LoginD.Scores
        ' Dim flag As Boolean
        Dim enscore As New LoginEntity.Scores

        eUser = dUser.SelectUser(user)

        If IsNothing(eUser.UserName) Then
            Throw New Exception("登录失败,请检查用户名和密码")
        Else
            MsgBox("登录用户:" + eUser.UserName)
            eScore.UpdateScores(forscore)
            'eScore.UpdateScores(user.UserName, 10)
            Return eUser

        End If

    End Function

End Class

D层:DbConnstr.vb

''' <summary>
''' 创建数据库类的Dbconnstr,方便之后对数据库的调用。
''' </summary>
''' <remarks></remarks>
Public Class DbConnstr
    Public Shared Function connstring() As String
        connstring = "server=192.168.24.103;database=Login;user=sa;password=123456;"
    End Function

End Class


Scores.vb:

Imports System.Data
Imports System.Data.SqlClient
''' <summary>
'''  创建访问对象Scores,访问数据表Score,返回符合条件的调用
''' </summary>
''' <remarks></remarks>
Public Class Scores
    '定义更新积分表函数

    'Public Sub UpdateScores(ByVal username As String, ByVal value As Integer)
    Public Function UpdateScores(ByVal score As LoginEntity.Scores) As LoginEntity.Scores
        Dim conn As New SqlConnection
        Dim cmd As New SqlCommand
        conn = New SqlConnection(LoginD.DbConnstr.connstring())
        cmd.Connection = conn

        cmd.CommandText = "insert into score(username,score)values(@username,@score) "
        cmd.Parameters.Add(New SqlParameter("@username", score.UserName))
        cmd.Parameters.Add(New SqlParameter("@score", score.Score))
        'cmd.Parameters.Add(New SqlParameter("@username", username))
        'cmd.Parameters.Add(New SqlParameter("@score", value))
        conn.Open()
        cmd.ExecuteNonQuery()


        conn.Close()
        Return Nothing

    End Function
End Class

Users.vb:

Imports System.Data
Imports System.Data.SqlClient
Imports LoginEntity

''' <summary>
''' 创建访问对象Users ,访问数据表uses,返回符合条件的调用
''' </summary>
''' <remarks></remarks>
Public Class Users
    '定义选择用户函数,按传入参数返回查询的记录
    Public Function SelectUser(ByVal user As LoginEntity.Users) As LoginEntity.Users
        Dim conn As New SqlConnection '创建连接对象
        Dim cmd As New SqlCommand    '创建命令对象
        conn = New SqlConnection(LoginD.DbConnstr.connstring())
        cmd.Connection = conn

        '根据输入的用户名和密码查询记录
        '定义查询语句
        cmd.CommandText = "select * from users where UserName=@UserName and Password =@Password"
        '添加命令参数
        cmd.Parameters.Add(New SqlParameter("@UserName", user.UserName))
        cmd.Parameters.Add(New SqlParameter("@Password", user.Password))
        '类型,可以不写为默认值
        cmd.CommandType = CommandType.Text

        Dim users As New LoginEntity.Users
        Try
            conn.Open() '打开连接

            Dim reader As SqlClient.SqlDataReader
            reader = cmd.ExecuteReader    '执行查询


            While (reader.Read)
                If (users Is Nothing) Then    '为空时,延迟加载
                    users = New LoginEntity.Users
                End If
                users.ID = reader.GetInt32(reader.GetOrdinal("ID"))
                users.UserName = reader.GetString(reader.GetOrdinal("UserName"))
                users.Password = reader.GetString(reader.GetOrdinal("Password"))
                If (Not reader.IsDBNull(reader.GetOrdinal("Lever"))) Then
                    users.Level = reader.GetString(reader.GetOrdinal("Level"))
                End If
            End While
            conn.Close()

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

        Return users  '返回查询结果
    End Function
End Class

Entity层:

Scores.vb:

''' <summary>
'''实体类Scores ,映射数据库表Score
''' </summary>
''' <remarks></remarks>
Public Class Scores
#Region "定义Score表中的各个属性变量"
    Private _id As Integer
    Private _userName As String
    Private _score As String
#End Region
#Region "定义Score表中的各个属性"
    ''' <summary>
    ''' ID号
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property ID() As Integer
        Get
            Return _id
        End Get
        Set(value As Integer)
            _id = value
        End Set
    End Property
    ''' <summary>
    ''' 用户名
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property UserName() As String
        Get
            Return _userName
        End Get
        Set(value As String)
            _userName = value
        End Set
    End Property
    ''' <summary>
    ''' 积分
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Score() As Integer
        Get
            Return _score
        End Get
        Set(value As Integer)
            _score = value
        End Set
    End Property

#End Region
End Class

Users.vb:

''' <summary>
''' 实体类Users,映射数据库表Users
''' </summary>
''' <remarks></remarks>
Public Class Users
#Region "定义users表中的各个属性变量"
    Private _id As Integer
    Private _userName As String
    Private _password As String
    Private _level As String
#End Region
#Region "定义users表中的各个属性"
    ''' <summary>
    ''' ID 号
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property ID() As Integer
        Get
            Return _id
        End Get
        Set(value As Integer)
            _id = value
        End Set
    End Property
    ''' <summary>
    ''' 用户名
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property UserName() As String
        Get
            Return _userName
        End Get
        Set(value As String)
            _userName = value
        End Set
    End Property
    ''' <summary>
    ''' 密码
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Password() As String
        Get
            Return _password
        End Get
        Set(value As String)
            _password = value
        End Set
    End Property
    ''' <summary>
    ''' 用户级别
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Level() As String
        Get
            Return _level
        End Get
        Set(value As String)
            _level = value
        End Set
    End Property


#End Region


End Class

UI层:

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Dim user1 As New LoginEntity.Users
            Dim user2 As New LoginEntity.Users   '选择User2来登录
            Dim escore As New LoginEntity.Scores

            escore.Score = 10
            escore.UserName = txtUserName.Text.Trim

            user2.UserName = txtUserName.Text.Trim
            user2.Password = txtPassword.Text


            Dim login As New LoginB.Login
            user1 = login.SelectUserLogin(user2, escore)   ' 将登录后的user2的结果存到user1中


            'MessageBox.Show("登录用户:" + user1.UserName)  '通知用户登录成功
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString)   '通知用户登录失败
        End Try
       
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

  
End Class
此项目的登录界面:

登录成功后,会弹出一个窗体,显示登录的用户名。

当然,你的数据库里也发生了改变,自己去看看吧。

实例虽小,但也需要认真完成,每个例子中都会有不同的体会的。



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
VB.NET是一种面向对象的编程语言,它是Visual Basic的一种升级版本,被广泛应用于Windows平台上的应用程序开发。相比于以前的版本,VB.NET具有更强大的功能和更高效的操作。以下是一个VB.NET实例教程,帮助你快速入门VB.NET的编程: 1. 安装并配置Visual Studio:首先,你需要安装并配置Visual Studio开发环境。Visual Studio是一个功能强大的集成开发环境,可以帮助你进行VB.NET的编程和调试。 2. 创建一个新的VB.NET项目:在Visual Studio中,选择“文件”->“新建”->“项目”,然后选择“Visual Basic”->“Windows桌面”->“Windows窗体应用程序”,输入项目的名称并点击“确定”。 3. 设计界面:在VB.NET中,你可以通过拖放控件的方式快速设计界面,比如按钮、文本框、标签等。在窗体设计器中,选择需要的控件并拖放到窗体上,并设置其属性和事件处理程序。 4. 编写代码:在窗体设计器中双击控件,可以进入其默认的事件处理程序并编写相关的代码。比如点击按钮后触发的事件处理程序,可以编写相应的代码来实现相应的功能。 5. 调试和运行:编写完代码之后,可以通过点击“开始调试”按钮来进行调试和运行。在调试过程中,可以查看变量的值、断点运行和调试输出等。 通过上述VB.NET实例教程,你可以快速了解VB.NET的开发流程和基本操作,进而进行更复杂的应用程序开发和实际项目实践。祝你编程愉快!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值