三层VB.NET实例

三层VB.NET实例,第1张

概述之前三层的理论已经给大家讲的差不多 了,现在用我们的理论加上我们的实践,来实现一个三层的小例子。 现在来为大家实现一个登录的实例。首先,创建我们的数据库: 设计两个表: 创建此数据库的目的是:用户实现登陆后,要在Score表中自动添加积分。 之后运用三层,将项目分为下面四个:包括UI(界面)层,BLL(逻辑)层,DAL(数据访问)层和Entity(实体)层。 依次展示它们的代码片段: B层: Im

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

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


设计两个表:



创建此数据库的目的是:用户实现登陆后,要在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 FunctionEnd 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 FunctionEnd Class


scores.vb:
imports System.Dataimports 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 FunctionEnd Class

Users.vb:
imports System.Dataimports System.Data.sqlClIEntimports 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 FunctionEnd 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 RegionEnd 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 RegionEnd 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
此项目的登录界面:

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

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

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

总结

以上是内存溢出为你收集整理的三层VB.NET实例全部内容,希望文章能够帮你解决三层VB.NET实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1273314.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存