精华内容
下载资源
问答
  • 内容索引:VB源码,界面编程,热键 Vb窗体定制热键的源代码实例,定制成功后,如果要显示该窗体,只需按Ctl+Alt+A 即可,就像QQ的聊天窗口一样,一般是按Ctl+Z键即显示了,有些人还是比较喜欢热键的,究其本例的实现...
  • VB窗体控件设计登录注册页面

    千次阅读 2020-08-16 13:36:41
    VB窗体控件设计登录注册页面 界面如下 代码如下 Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub Button3_Click(sender As Object, e As ...

    VB窗体控件设计登录注册页面

    界面如下
    在这里插入图片描述

    代码如下

    Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
    End Sub
    
    
    '登录
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    
        Dim myconnect As New SqlClient.SqlConnection
        Dim mycommand As New SqlClient.SqlCommand
        Dim myread As SqlClient.SqlDataReader = Nothing
        Dim mytable As New DataTable()
        myconnect.ConnectionString = "server=127.0.0.1;database=master;integrated security=true;uid=chk;pwd=chk123456"
        myconnect.Open()        '打开数据库
        '设置命令属性
        mycommand.Connection = myconnect
        mycommand.CommandType = CommandType.Text
    
        Dim name As String
        Dim password As String
        name = Me.TextBox1.Text
        password = Me.TextBox2.Text
    
        mycommand.CommandText = "select * from test w
    展开全文
  • 完整版VB登陆界面代码!复制到vb中即可使用。让初学者一看就懂,此代码直接连接数据库的,非常适合初学者和高级学者。
  • VB讲课笔记06:窗体与常用控件

    千次阅读 2018-03-10 17:24:29
    VB讲课笔记06:窗体与常用控件 一、窗体设计 窗体VB中最基本的对象,是应用程序的基本组成部分,是菜单栏、工具栏和控件等对象的容器,是应用程序与用户交互的窗口或对话框。窗体设计是整个VB应用程序设计的基础...
    展开全文
  • vb枚举窗体、标题文字,自定义热键程序,注册热键失败,请使用其它热键!本软件是由wssccc开发的自由软件,具有鼠标中键操作功能,添加图标到任务栏提示区,使用鼠标隐藏,随Windows加载。程序可枚举当前打开的所有...
  • VB6IDEMouseWheelAddin.dll VB编辑窗体滚轮控件,很好用的。
  • 内容索引:VB源码,网络相关,聊天,发消息 Vb完成类似NetSend功能的窗体程序,NetSend是在局域网同工作组内发消息的一个命令程序,属点对点发送,本程序演示了它的实现,也可称之为一个小型的聊天程序。  ...
  • VB开发的一个面向DLL.OCX等控件的快速注册工具,将指定控件快速注册到windows中,以便程序能够调用。这个XP风格的控件注册软件,已经过多次改良修正:★ 加入启动位置判断  ★ 全面改进拖放系统,整个窗体适用  ...
  • 一个让窗体加上滚动条的 VB 源码 用到了子类化的技术 如果显示未找到库,可以到 http://download.csdn.net/source/778537 窗中加滚动条需要的库 请将文件拷贝到system32目录下,再打开运行输入 regsvr32 ...
  • 可方便的开发出网络围棋对弈程序(18KB) 65,133.zip FormShaper,定制窗体形状的控件(18KB) 66,c4.zip 翻滚文字的 ActiveX 控件(6KB) 67,FreeActiveX.zip 取消控件注册的About对话框限制(45KB)...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • 机房收费系统之注册窗体

    热门讨论 2017-12-10 21:12:28
    初版流程图,有所不周,还请担待。...combo里面的选项是在form窗体里进行设置的,具体代码如下: Private Sub Form_Load() combosex.AddItem "男" combosex.AddItem "女" Combostatus.AddItem "使

    初版流程图,有所不周,还请担待。


    一:流程图



    1这里有个学习知识点,就是对combo的设置

    combo里面的选项是在form窗体里进行设置的,具体代码如下:

    Private Sub Form_Load()
        combosex.AddItem "男"
        combosex.AddItem "女"
        
        Combostatus.AddItem "使用"
        Combostatus.AddItem "不使用"
        
        Combotype.AddItem "临时用户"
        Combotype.AddItem "固定用户"
        
    End Sub



    2还有需要注意的一点就是金额的设置,充值金额需要高于最低限制,这就要与basic表的列进行比较。代码如下:

     	txtSQL = "select * from basicdata_info"
            Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    If txtcash.Text < Trim(mrc1.Fields(5)) Then
                        MsgBox "金额小于最低余额充值!", 48, "警告"
                        Exit Sub
                End If


    3最后将注册好的信息添加到student表中。代码如下:


     mrc.AddNew
                    mrc.Fields(0) = Trim(txtcardno.Text)
                    mrc.Fields(1) = Trim(txtstudentno.Text)
                    mrc.Fields(2) = Trim(txtstudentname.Text)
                    mrc.Fields(3) = Trim(combosex.Text)
                    mrc.Fields(4) = Trim(txtdepartment.Text)
                    mrc.Fields(5) = Trim(txtgrade.Text)
                    mrc.Fields(6) = Trim(txtclass.Text)
                    mrc.Fields(7) = Trim(txtcash.Text)
                    mrc.Fields(8) = Trim(txtexplain.Text)
                    mrc.Fields(9) = mrc2.Fields(0)
                    mrc.Fields(10) = Trim(Combostatus.Text)
                    mrc.Fields(11) = "结账"
                    mrc.Fields(12) = Date
                    mrc.Fields(13) = Time
                    mrc.Fields(14) = Trim(Combotype.Text)
                    
                    
                    mrc.Update
                    mrc.Close
                    MsgBox "注册成功!", vbOKOnly, "恭喜!"

    这里的mrc2是指user里的user ID


    5最后不要忘记更新,不然记录不会存到表里。


    6如果想要与人方便,可以设置在最后注册完清空text。这样显得既干净还能方便下一次使用。


    7容易出错的小地方:testtxt



    曾经在敲学生的时候,这个地方就容易出错。本身sx挨得近,并且自我感觉它俩在代码里真的是不好认出来谁对谁错。所以建议大家以后敲代码的时候一定要注意一下,以免自己因为这个小地方而迟迟找不到出错原因。

    texttxt <>testtxt




    二:注册窗体里不仅有个存盘的功能,还有一个查询余额的功能,在一般用户里面,我们已经研究过了查询余额,两个显示的是同一个窗体,所以这里只需要将查询余额窗体调用出来即可。

    frmcxye.show


    三:整个窗体代码展示:

    欢迎小伙伴们能给我指出不足之处,互勉之。

    Option Explicit
    Private Sub cmdadd_Click()
        Dim txtSQL As String
        Dim MsgText As String
        Dim mrc As ADODB.Recordset
        Dim mrc1 As ADODB.Recordset
        Dim mrc2 As ADODB.Recordset
    
        If txtcardno.Text = "" Then
            MsgBox "请输入卡号!", 48, "警告"
            
        Else
        
            If Not IsNumeric(txtcardno.Text) Then
                MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
                Exit Sub
                txtcardno.SetFocus
            Else
        
             '判断卡号是否存在---若存在则建议查询余额
            
                txtSQL = "select * from student_info where cardno = '" & txtcardno.Text & "'"
                Set mrc = ExecuteSQL(txtSQL, MsgText)
                   
                If mrc.EOF = False Then
                    MsgBox "此卡号已经存在,您可查询余额!", vbOKOnly + vbExclamation, "警告"
                    txtcardno.SetFocus
                    txtcardno.Text = ""
                Else
                
                '若卡号不存在,则输入基本信息
                If Not Testtxt(txtcash.Text) Then
                    MsgBox "请输入充值金额!", 48, "警告"
                    Exit Sub
                End If
                txtSQL = "select * from basicdata_info"
                Set mrc1 = ExecuteSQL(txtSQL, MsgText)
                    If txtcash.Text < Trim(mrc1.Fields(5)) Then
                        MsgBox "金额小于最低余额充值!", 48, "警告"
                        Exit Sub
                End If
                
                
                If Not Testtxt(txtstudentno.Text) Then
                    MsgBox "请输入学号!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(txtstudentname.Text) Then
                    MsgBox "请输入姓名!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(txtgrade.Text) Then
                    MsgBox "请输入年级!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(txtclass.Text) Then
                    MsgBox "请输入班级!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(combosex.Text) Then
                    MsgBox "请选择性别!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(txtdepartment.Text) Then
                    MsgBox "请输入系别!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(Combostatus.Text) Then
                    MsgBox "请选择状态!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(Combotype.Text) Then
                    MsgBox "请选择类型!", 48, "警告"
                    Exit Sub
                End If
                
                If Not Testtxt(txtexplain.Text) Then
                    txtexplain.Text = "无"
                End If
                
                '添加信息
                
                txtSQL = "select * from user_info"
                Set mrc2 = ExecuteSQL(txtSQL, MsgText)
                
                    mrc.AddNew
                    mrc.Fields(0) = Trim(txtcardno.Text)
                    mrc.Fields(1) = Trim(txtstudentno.Text)
                    mrc.Fields(2) = Trim(txtstudentname.Text)
                    mrc.Fields(3) = Trim(combosex.Text)
                    mrc.Fields(4) = Trim(txtdepartment.Text)
                    mrc.Fields(5) = Trim(txtgrade.Text)
                    mrc.Fields(6) = Trim(txtclass.Text)
                    mrc.Fields(7) = Trim(txtcash.Text)
                    mrc.Fields(8) = Trim(txtexplain.Text)
                    mrc.Fields(9) = mrc2.Fields(0)
                    mrc.Fields(10) = Trim(Combostatus.Text)
                    mrc.Fields(11) = "结账"
                    mrc.Fields(12) = Date
                    mrc.Fields(13) = Time
                    mrc.Fields(14) = Trim(Combotype.Text)
                    
                    
                    mrc.Update
                    mrc.Close
                    MsgBox "注册成功!", vbOKOnly, "恭喜!"
                    
                
                End If
            End If
        End If
    End Sub
    
    
    Private Sub cmdclear_Click()
        txtcardno.Text = ""
        txtcash.Text = ""
        txtstudentno.Text = ""
        txtstudentname.Text = ""
        txtgrade.Text = ""
        txtclass.Text = ""
        txtdepartment.Text = ""
        txtexplain.Text = ""
        combosex.Text = ""
        Combostatus.Text = ""
        Combotype.Text = ""
        
    End Sub
    
    Private Sub cmdinquire_Click()
        frmcxye.Show
        
    End Sub
    
    Private Sub Form_Load()
        combosex.AddItem "男"
        combosex.AddItem "女"
        
        Combostatus.AddItem "使用"
        Combostatus.AddItem "不使用"
        
        Combotype.AddItem "临时用户"
        Combotype.AddItem "固定用户"
        
    End Sub
    


    一点一滴~~


    展开全文
  • VB窗体美化,QQ2009风格,无需注册DLL OCX.....
  • 数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5)

    千次阅读 多人点赞 2021-01-13 17:41:30
    数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5) A 目录 *引言* 《数据库系统课程设计》是计算机学院的实践课程。在较为系统地学完《数据库系统》后,通过此课程设计,一方面可以增强对数据库的理解;另一...

    分享一下学期做的数据库课程设计,记录和交流~

    附代码资源:

    数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5)

    A 目录

    image.png

    image.png

    *引言*

    《数据库系统课程设计》是计算机学院的实践课程。在较为系统地学完《数据库系统》后,通过此课程设计,一方面可以增强对数据库的理解;另一方面可以培养查找资料、分析问题和解决问题的能力。关系数据库设计过程分为以下5个阶段:需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行维护。也就是说,数据库的设计过程是先进行认真细致的需求分析,在清楚用户的要求后抽象出实体和实体之间的关系,用建模方法E-R 图表示出来,然后根据具体实施的 DBMS 平台将其转换为相应平台所支持的数据库逻辑模式并进行规范化处理,最后进行建库建标等物理模式的设计,从而完成整个数据库模式的设计过程。本次课程设计是对KTV点歌系统的设计,设计过程也严格遵循以上5个阶段。在设计完成的数据库中,应具备以下功能:对会员用户而言,登录到前台点歌系统后可以根据歌曲编号、歌手姓名、歌曲拼音缩写或歌曲名称检索歌曲,用户点击歌曲即可将歌曲加入到我的歌单中。进入播放列表后可以实现播放我的歌单中的歌曲,同时可以移除所选歌曲、清空我的歌单、暂停播放和重新播放等功能。在开始点歌窗口,用户还可以进入歌曲排行榜对歌曲的点播热度进行查询,同时也可以在歌曲排行榜中将歌曲添加到我的歌单中。每当一首歌被添加进我的歌单中时,歌曲的总点击率便会加1;对于系统管理员而言,登录到KTV后台管理系统后可以对用户信息、歌曲信息和歌手信息进行添加、删除、查询、更新等操作。同时设置超级管理员,若管理员拥有超级管理员权限则可以对系统所有的管理员信息进行管理。也就是,数据库的设计应该具备基本的增删改查功能。在第一部分,我们将介绍KTV点歌系统的设计背景、设计意义和设计内容。第二部分是本报告的重点,基于KTV点歌系统,对数据库设计的5个阶段,即需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行与维护。

    **
    **

    第1章 *概述*

    1.1 数据库设计背景

    由于经济文化的高速发展,人们对生活质量及工作环境的要求也越来越高,追求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌的社会当中,不论是在家庭,工作场所,或是学校,无时无刻充满着生活和学习上的压力。工作之余,找到一种释放压力,释放疲劳的娱乐方式,已成为大家共同的愿望。

    然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV厅唱K休闲娱乐。唱歌,自然免不了点歌的繁琐。传统的点歌设备主要是CD 和固放设备组成,虽然基本满足了人们的需求,但是也带来了设备成本高,点歌过程繁琐,更新麻烦等不少问题。随着科学的发展和信息时代的到来,点歌系统应运而生,KTV点歌系统已经成为了娱乐场所必不可少的一部分。KTV点歌系统不仅简化了用户操作,而且极大化满足了人们的需求和使用习惯。

    1.2 数据库设计意义

    KTV点歌系统是娱乐场所的一项管理措施,因此开发KTV点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。KTV点歌系统主要用于对音乐的各项查找,操作简单,直观。用起来极为方便。减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。因此,KTV点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。

    1.3 数据库设计内容

    运用所学的数据库技术理论知识,对KTV点歌系统进行数据库设计。设计应包含需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行和维护五个阶段。本次KTV点歌系统的开发主要包含前台点歌系统和后台管理系统模块的开发。

    前台点歌系统包含以下功能:

    l 歌曲点播(包含歌星点歌、数字点歌、拼音点歌、歌名点歌、全部歌曲)

    l 歌曲排行榜。

    l 将选中的歌曲添加至播放列表并进行播放。

    l 用户使用用户名和密码登录。

    l 用户积分查询和密码修改。

    后台管理系统包含以下功能:

    l 用户信息管理(增加、删除、更新、修改用户信息)。

    l 歌曲信息管理(增加、删除、更新、修改歌曲信息)。

    l 歌手信息管理(增加、删除、更新、修改歌手信息)。

    l 超级管理员可以对管理员信息进行管理。

    l 管理员密码修改。

    *1.4* *相关技术介绍*

    下面对使用的RDBMS、应用程序开发环境、系统运行环境、开发工具及版本作简单的介绍。

    *1.4.1* *RDBMS********:********Mysql*

    关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。

    常用的关系数据库管理系统产品是Oracle、IBM的DB2和微软的SQL Server。而本次课程设计采用的是MySQL 5.5。

    image.png

    图1-1 MySQL5.5 运行环境

    *1.4.2 可视化管理工具:SQLyog*

    SQLyog 是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库,由业界著名的Webyog公司出品。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。

    image.png

    图1-2 SQLyog 可视化管理工具

    *1.4.3* *系统运行环境*

    操作系统:Windows10

    image.png

    图1-3 系统信息

    *1.4.4* *应用程序开发环境********:********Visual Studio 2019*

    Visual Studio 2019正式版是在4月2日发布的微软神级开发工具。默认安装Live Share代码协作服务,帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进;Visual Studio IntelliCode AI帮助;更好的Python虚拟和Conda支持;以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等 。

    image.png

    图1-4 Visual Studio 2019开发环境

    *第2章 KTV点歌系统的设计*

    本次对于KTV点歌系统的设计,应该包含以下5个阶段:需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行和维护,如图2-1所示。

    image.png

    *2.1* *需求分析*

    KTV点歌系统是娱乐场所的一项管理措施,因此开发KTV点歌系统具有较大的社会意义,同时点歌系统是一娱乐软件的开端,它具有简单的软件特征,系统结构与现实生活紧密结合,具体直观,具有典范的便捷软件特点。KTV点歌系统主要用于对音乐的各项查找,操作简单,直观。用起来极为方便。减少了手工操对工作人员带来的不便和繁琐,使每个用户都能根据自己爱好选择自己喜欢的音乐。因此,KTV点歌系统是企业化、智能化、科学化、正规化不可缺少的管理软件。

    *2.1.1* *信息需求*

    1、歌手信息:歌手编号、姓名、姓名拼音缩写、性别、出生日期、国籍。

    2、歌曲信息:歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径。

    3、歌曲排行版:歌曲编号、歌曲名称、总点击率。

    4、我的歌单:歌曲编号、歌曲名称。

    5、会员信息:会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分。

    6、管理员信息:管理员编号、管理员用户名、管理员密码。

    7、超级管理员:超级管理员编号、超级管理员用户名、超级管理员密码。

    8、后台操作记录:操作编号、操作内容、操作时间、操作人员、备注。

    *2.1.2* *功能需求*

    根据以上8个表的属性,可以总结出,设计出来的数据库应该面向用户和管理员。对于用户,需要会员账号和密码登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。同时,可以查看歌曲排行榜信息。对于管理员,可使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。同时,设置超级管理员,其可使用超级管理员的账号密码进入管理员信息管理系统对管理员信息进行各类操作。

    上面表的结构关系较为混乱,如果没有进行必要的修改,将导致数据余、修改异常、插入异常、删除异常等情况,所以接下来将根据需求分析所需要的功能做后续的分析与设计,图2-1为KTV点歌系统结构图:

    image.png

    图2-1 KTV点歌系统结构图

    *2.1.3* *安全性与完整性需求*

    1、数据库应该面向用户和管理员。

    2、用户需要会员账号和密码才能登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。

    3、管理员需要使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。

    4、每个用户由会员编号唯一标识,用户编号由系统按顺序生成;用户名不能与其他用户相同且只能由数字和字母组成;用户的密码不允许为空;出生日期、注册时间必须是在合理范围;会员性别非男即女;系统自动记录注册日期;

    4、每个用户由会员编号和会员姓名唯一标识;系统自动记录操作记录;添加歌曲使用默认的歌曲路径。

    5、每首歌曲由歌曲编号、名称、歌手编号唯一标识;系统自动记录歌曲上传时间;系统自动设置歌曲相对路径。

    6、设置超级管理员,其可使用超级管理员的账号密码进入管理员信息管理系统对管理员信息进行各类操作。

    *2.1.4* *数据流图*

    image.png

    图2-2 首层数据流图

    图2-3 0层数据流图

    图2-4 1层数据流图

    图2-5 1层数据流

    图2-6 1层数据流图

    *2.1.5* *数据字典*

    *1. 数据项*

    *数据项名**数据类型**数据长度**取值范围**简述*
    会员编号整型4位0~ 2^31-1惟一标识用户身份
    会员姓名字符型10位只能由数字和字母组成用户名唯一,用户登录时的用户名
    会员性别字符型1位男|女
    出生日期日期8位1900.1至今
    身份证号字符型20位合法身份证
    注册时间日期8位1900.1至今用户注册的时间
    积分字符型30位合法邮箱地址
    会员密码字符型20位
    歌曲编号整型10位
    歌曲名称字符型20位
    歌曲编号整型10位
    歌手姓名字符型10位
    语种字符型10位
    歌曲类型字符型10位
    歌曲时长字符型10位
    歌曲储存路径字符型30位
    歌手编号整型10位0~ 2^31-1
    姓名拼音缩写字符型10位歌手姓名的拼音缩写
    歌手性别字符型10位男|女
    歌手出生日期字符型10位1900.1至今
    国籍字符型10位
    管理员编号整型10位0~ 2^31-1
    管理员用户名字符型10位
    管理员密码字符型10位
    超级管理员编号整型10位
    超级管理员用户名字符型10位
    超级管理员密码字符型10位
    操作编号整型10位0~ 2^31-1
    操作内容字符型30位
    操作时间日期8位
    操作人员字符型10位操作用户身份
    备注字符型50位

    *2. 数据结构*

    *名称**含义**组成*
    用户信息用户的基本信息会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分
    歌手信息歌手的基本信息歌手编号、姓名、姓名拼音缩写、性别、出生日期、国籍
    歌曲信息歌曲的基本信息歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径
    歌曲排行榜歌曲点击率排行歌曲编号、歌曲名称、总点击率
    我的歌单已点的歌曲歌曲编号、歌曲名称
    会员信息用户的基本信息会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分
    管理员信息管理员的基本信息管理员编号、管理员用户名、管理员密码
    超级管理员超级管理员的基本信息超级管理员编号、超级管理员用户名、超级管理员密码
    后台操作记录后台操作记录操作编号、操作内容、操作时间、操作人员、备注

    *3. 数据流*

    部分 数据流

    名称点歌
    含义用户点歌
    来源歌曲信息表
    去向我的歌单、歌曲排行榜
    组成歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径

    4. *数据存储*

    部分

    *5. 数据处理*

    *2.2* *概念结构设计*

    直接把现实世界事务及其联系抽象为数据世界的数据模型过于复杂,因此一般是先将现实世界的事务及其联系抽象为信息世界实体及其联系,然后再将其转化为计算机世界的数据模型,如关系数据模型。

    概念模式设计主要任务是完成对需求分析报告中描述现实世界的建模,即用一种数据模型来实现对现实世界的抽象表达。这种建模与具体的机器、DBMS 无关,是现实世界到信息世界的第一层抽象,所用的数据模型是用户与数据库设计人员之间进行交流的最重要的某种语言或表示方法。因此,用于表达概念模式的数据模型一方面应该具有较强的语义表达能力,能够方便、直接地表达实际应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。常用的数据模型就是实体‐联系模型(E‐R模型)。

    *2.2.1 概念模型*

    *(********1********)* *实体及属性*

    KTV点歌系统涉及以下几个实体:

    1、歌手:歌手编号、姓名、姓名拼音缩写、性别、出生日期、国籍。

    2、歌曲:歌曲编号、名称、歌曲拼音缩写、歌手编号、语种、歌曲类型、歌曲时长、歌曲存储路径。

    3、歌曲排行榜:歌曲编号、歌曲名称、总点击率。

    4、我的歌单:歌曲编号、歌曲名称。

    5、会员(用户):会员编号、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分。

    6、管理员:管理员编号、管理员用户名、管理员密码。

    7、超级管理员:超级管理员编号、超级管理员用户名、超级管理员密码。

    8、后台操作:操作编号、操作内容、操作时间、操作人员、备注。

    *(********2********)* *实体之间的联系*

    ​ 具体联系结合局部E-R图在下面分析。

    *2.********2.********2* *局部********E-R图********设计*

    实体‐联系模型(E‐R 模型)是一个面向问题的概念性数据模型。该模型将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种基本联接关系,并且可以实体联系图非常直观地表示出来。

    E-R模型的基本元素如下:

    (1) 实体:客观存在并可相互区别的事物称为实体。

    (2) 属性:实体所具有的某一特征称为实体的属性。

    (3) 键:也称关键字或码,唯一标识实体的最小的属性集称为实体的键。

    (4) 联系:现实世界的事物彼此是有联系的,反映在信息世界就是实体之间的联系。

    *1.* *歌曲和歌手的局部********E-R********图*

    分析:图3-1为歌曲和歌手的局部E-R图。从图中可以看出:一首歌曲可以由多位不同的歌手演唱,一位歌手可以演唱多首歌曲。所以二者是多对多的关系,即m:n的关系。其中歌曲的主键:歌曲编号;歌手的主键:歌手编号。

    image.png

    图3-1 歌曲和歌手的局部E-R图

    *2.* *歌曲和用户的局部E-R图*

    分析:图3-2为歌曲和用户的局部E-R图。从图中可以看出:一首歌曲可以被多位用户点播,一位用户可以点播多首歌曲。所以二者是多对多的关系,即m:n的关系。其中歌曲的主键:歌曲编号;用户的主键:会员编号。

    图3-2 歌曲和用户的局部E-R图

    *3.* *歌曲和管理员的局部E-R图*

    分析:图3-3为歌曲和管理员的局部E-R图。从图中可以看出:一首歌曲可由多位管理员管理,一名管理员可以管理数据库中所有的歌曲。所以二者是多对多的关系,即m.n的关系。其中歌曲的主键:歌曲编号:管理员的主键:管理员编号。

    图3-3 歌曲和管理员的局部E-R图

    *4.* *用户和管理员的局部E-R图*

    分析:图3-4为用户和管理员的局部E-R图。从图中可以看出:一名用户可由多位管理员管理,一名管理员可以管理数据库中所有的用。所以二者是多对多的关系,即m:n的关系。其中用户的主键.会员编号:管理员的主键:管理员编号。

    图3-4 用户和管理员的局部E-R图

    *5.* *用户和歌手的局部********E-R********图*

    分析:图3-5为用户和歌手的局部E-R图。从图中可以看出:一名用户可检索多位歌手,一名歌手可被多名用户检索。所以二者是多对多的关系,即m:n的关系。其中用户的主键:会员编号;歌手的主键:歌手编号。

    图3-5用户和歌手的局部E-R图

    *6.* *歌手和管理员的局部E-R图*

    分析:图3-6为歌手和管理员的局部E-R图。从图中可以看出:一名歌手可由多位管理员管理,一名管理员可管理数据库中所有歌手。所以二者是多对多的关系,即m:n的关系。其中歌手的主键:歌手编号:管理员的主键:管理员编号。

    图3-6 管理员歌手的局部E-R图

    7. *超级管理员和管理员的局部E-R图*

    分析:图3-7为超级管理员和管理员的局部E-R图。从图中可以看出:一名管理员可由多位超级管理员管理,一名超级管理员可管理所有的管理员。所以二者是多对多的关系,即m:n的关系。其中超级管理员的主键:超级管理员编号:管理员的主键:管理员编号。

    图3-7 超级管理员和管理员的局部E-R图

    *8.* *歌曲排行榜实体E-R图*

    分析:图3-8为歌曲排行榜实体E-R图。实体歌曲排行榜中一共有三个属性,分别是歌曲编号、歌曲名称和总点击率,每首歌都具有唯一的歌曲编号,因此将歌曲编号作为歌曲排行榜的主键。

    图3-8 歌曲排行版实体E-R图

    *9.* *我的歌单实体E-R图*

    分析:图3-9为我的歌单实体 E-R 图。实体我的歌单中一共两个属性,分别是歌曲编号和名称,每首歌都具有唯一的歌曲编号,因此将歌曲编号作为歌曲排行榜的主键。

    图3-9 我的歌单实体E-R图

    *10.* *后台操作记录实体E-R图*

    图3-10 后台操作记录实体E-R图

    *2.2.3* *全局E-R图设计*

    在设计完所有实体之间的联系后,即局部E-R图设计,需将局部E-R图合并,在这个过程需要去掉多个实体和属性之间的命名冲突和联系冲突等,从而生成一个完整的、满足应用需求的全局 E-R 图。图3-11 即为 KTV 点歌系统的全局 E-R图。通过图3-11可以清晰的看出各个实体之间的关系。

    图3-11 全局E-R图

    *2.3* *逻辑结构设计*

    数据库概念模式设计完成后,数据库的设计进入到逻辑模式设计阶段。这时的数据库设计与具体的机器世界是相关联的。逻辑模式设计阶段有两大任务:
    1、按一定的规则将E-R图转换成关系模式。
    2、关系模式的规范化处理。所谓关系模式的规范化处理,就是对关系式进行某种处理,使它满足一定的规范化要求。规范化的主要目的就是要尽可能地消除关系操作过程中的异常情况。

    *2.3.1* *关系模型:所有********关系模式********及范式分析等*

    根据以上E一R模型向关系模型转换规则,对上述的E一R图进行转换,转换结果如下(主键用下划线标出,外键用波浪线标出):

    1) *歌手(********歌手编号********、姓名、姓名拼音缩写、性别、出生日期、国籍)*

    每位歌手的编号都是唯一的,通过属性歌手编号即可对应唯一的一位歌手,所以选择歌手编号作为主键。

    2)*歌曲(*****歌曲编号********、名称、歌曲拼音缩写、语种、歌曲类型、歌曲时长、********歌手编号********)****

    每首歌曲的编号都是唯一的,通过属性歌曲编号即可对应唯一的一首歌曲,所以选择歌曲编号作为主键,歌手编号是歌手信息表中的属性,所以在歌曲信息表中是外键。

    3)*用户(*****会员编号********、会员姓名、会员性别、出生日期、身份证号、注册时间、会员密码、积分)****

    每位用户的会员编号都是唯一的,通过属性会员编号即可对应唯一的一位用户,所以选择会员编号作为主键。

    4)*管理员(*****管理员编号********、管理员用户名、管理员密码)****

    每位管理员的管理员编号都是唯一的,通过属性管理员编号即可对应唯一的一位管理员,所以选择管理员编号作为主键。

    5)*超级管理员(*****超级管理员编号********、超级管理员用户名、超级管理员密码)****

    每位超级管理员的编号都是唯一的,通过属性超级管理员编号即可对应唯一的一位超级管理员,所以选择超级管理员编号作为主键。

    6)*演唱(*****歌手编号、歌曲编号********)****

    演唱是歌曲和歌手这两个实体之间的联系,联系关系模式的属性是由两端实体集的键码和联系自身的属性构成,所以其属性为歌手编号和歌曲编号。同时,联系关系模式的键码为复合键码,由两端实体集键码以及相关属性组合而成,所以其主键为歌手编号和歌曲编号。以下六个联系关系模式集合的分析与此同理。

    *7)点播(********歌曲编号、会员编号********)*

    *8)检索(********歌手编号、会员编号********)*

    *9)管理(********歌曲编号、管理员编号********)*

    *2.3.2 数据模型的优化*

    在数据库逻辑模式设计阶段,完成E-R图到关系模式的转换后,就要进入关系模式的规范化处理阶段。这一过程主要研宄关系模式内各属性之间的依赖关系,保持属性间好的数据依赖关系,消除导致异常的依赖关系,使得关系模式由低一级的规范模式上升到高一级的规范模式。我们设计的最终目的是使关系模式规范化,所以最低应该达到第三范式。

    首先,上述的关系中每一个属性都是不可冉分的数据,所以均符合第一范式。其次,第二范式要求关系模式必须属于第一范式,且每个非主属性都是完全函数依赖于主誕。在上述关系中,“歌手”、“歌曲”、“用户”、“管理员”和“超级管理员”都只有一个主誕,所以不存在部分依赖关系,属于第二范式。“演唱”、“点播”、“检索”和“管理”等七个关系中,均有两个主誕,但是这七个关系均不存在非主属性,所以不存在部分函数依赖,也属于第二范式。最后,第三范式要求关系模式必须属于第一范式,且每个非主属性都不传递函数依赖于主誕。在上述关系中,“歌手”、“歌曲”、“用户”、“管理员”和“超级管理员”都不存在传递函数依赖关系,属于第三范式。“演唱”、“点播”、“检索”和“管理”等七个关系中,均有两个主誕,但是这七个关系均不存在非主属性,所以不存在传递函数依赖,也属于第三范式。

    *2.3.3* *安全性(用户类别和权限)设计和实现说明*

    *1、用户权限*

    用户需要会员账号和密码才能登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。

    2、*管理员权限*

    管理员需要使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。

    3、*超*****级管理员****

    其可进入管理员信息管理系统对管理员信息进行各类操作。

    *2.3.4* *完整性(主、外码和用户自定义的完整性约束)设计和实现说明*

    1、数据库应该面向用户和管理员。

    2、用户需要会员账号和密码才能登入前台点歌系统,进入后可以查询个人账户的积分以及修改账户密码。还可通过多种方式进行歌曲点播,如根据演唱歌星的名字、歌曲名称编号、歌曲名称拼音缩写以及歌曲名称等检索歌曲。

    3、管理员需要使用管理员编号和密码进行登入后台操作系统,其进入后可对歌曲、歌手以及会员用户信息进行各类操作,如增加、删除、更新、修改等,也可以修改管理员账号的密码。

    4、每个用户由会员编号唯一标识,用户编号由系统按顺序生成;用户名不能与其他用户相同且只能由数字和字母组成;用户的密码不允许为空;出生日期、注册时间必须是在合理范围;会员性别非男即女;系统自动记录注册日期;

    4、每个用户由会员编号和会员姓名唯一标识;系统自动记录操作记录;添加歌曲使用默认的歌曲路径。

    5、每首歌曲由歌曲编号、名称、歌手编号唯一标识;系统自动记录歌曲上传时间;系统自动设置歌曲相对路径。

    6、设置超级管理员,其可使用超级管理员的账号密码进入管理员信息管理系统对管理员信息进行各类操作。

    *2.4* *数据库物理设计*

    *2.4.1 存取方法*

    存取方法是快速有取数据库中数据的技术。数据库管理系统一般提供多种存取方法。

    常用的存取方法为索引方法和聚簇(clustering)方法。其中B+树索引和hash索引是数据库中经典的存取方法,使用最普遍。

    1. *B+树索引存取方法*

    所谓选择索引存取方法,实际上就是根据应用要求确定对关系的哪些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计为唯一索引等。一般来说:

    (1)如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引)。

    (2)如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。

    (3)如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引。

    ​ 关系上定义的索引数并不是越多越好,系统为维护索引要付出代价,查找索引也要付出代价。例如,若一个关系的更新频率很高,这个关系上定义的索引数不能太多。因为更新一个关系时,必须对这个关系上有关的索引做相应的修改。

    2. *hash索引存取方法*

    选择hash存取方法的规则如下:如果一个关系的属性主要出现在等值连接条件中或主要出现在等值比较选择条件中,而且满足下列两个条件之一,则此关系可以选择hash存取方法。

    (1)一个关系的大小可预知,而且不变。

    (2)关系的大小动态改变,但数据库管理系统提供了动态hash存取方法。

    *2.4.2 储存结构*

    *1. 存放位置*

    MySQL数据库存储的方式:一台数据库服务器中会创建很多数据库(一个项目,会创建一个数据库)。在数据库中会创建很多张表(一个实体会创建一个表)。在表中会有很多记录(一个对象的实例会添加一条新的记录)。

    选择使用innodb 存储引擎

    位置:D:\mysql-8.0.21-winx64\mysql-5.6.26-winx64\data\Data\

    *2. 系统配置*

    Mysql中系统配置命令

    总体查看当前数据库的状态:status

    D:\mysql-8.0.21-winx64\mysql-5.6.26-winx64\bin\mysql.exe

    Ver 14.14 Distrib 5.5.27, for Win64 (x86)

    Connection id: 7

    Current database:

    Current user: root@localhost

    SSL: Not in use

    Using delimiter: ;

    Server version: 5.5.27 MySQL Community Server (GPL)

    Protocol version: 10

    Connection: localhost via TCP/IP

    Server characterset: utf8

    Db characterset: utf8

    Client characterset: gbk

    Conn. characterset: gbk

    TCP port: 3306

    Uptime: 1 hour 28 min 1 sec

    Threads: 3 Questions: 182 Slow queries: 0 Opens: 93 Flush tables: 1 Open tables: 2 Queries per second avg: 0.034

    *第3章 数据库的实施与VB.NET界面开发*

    数据库实施部分首先运用My SQL建立KTV系统管理数据,再将各关系模型转化为实际的 SQL 数据表。VB.NET 界面开发部分主要是利用 VB.NET 进行KTV前台点歌系统和后台管理系统人机交互界面的设计与制作。

    3.1 数据库基本表设计

    3.1.1 用户信息表

    3.1.2 我的歌单

    3.1.3 后台操作记录

    3.1.4 管理员信息表

    3.1.5 歌手信息表

    3.1.6 歌曲信息表

    3.1.7 歌曲排行榜

    3.1.8 超级管理员信息表

    *3.2登录模块界面设计及程序分析*

    登录模块由登录页面、用户登录页面和管理员登录页面三个窗口组成。登录页面在KTV点歌系统中起到了欢迎界面的作用,以构建一个美观舒适的人机交互环境,如图3-1所示。在该窗口有三个功能按钮,分别是用户登录、管理员登录和退出系统。其中点击用户登录按钮可以进入用户登录界面,即进入前台点歌系统,如图3-2所示;点击管理员登录按钮可以进入管理员登录界面,即进入后台管理系统,如图3-3所示;点击退出,则系统会关闭。

    image.png

    图3-1 登录页面

    图3-2 用户登录页面 图 3-3 管理员登录页面

    在用户登录页面和管理员登录页面,用户和管理员必须输入正确用户名和密 码才能成功登录前台点歌系统,如图 3-4 和图 3-5 所示。若点击取消则会返回登录页面。

    图 3-4 用户登录成功 图 3-5 管理员登录成功

    为了提高系统的安全性,当用户或者管理员输入错误的用户名或密码的次数 超过两次时,我们认为正在进行登录操作的人员不是我们的会员用户和系统管理 员,系统执行退出指令,禁止该人员登录。如图 3-6 和图 3-7 所示,管理员登录 页面的设计在这点上与用户登录页面设计一致。

    图3-6 错误输入用户名或密码 图 3-7 错误输入管理员名或密码

    Dim n As Integer = 0
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim myconnection As New MySqlConnection("Server=localhost;User Id=root;Password=123456;Database=jm_database;Port=3306;")
            Dim mysql As String = "select * from 用户信息表 where 会员编号='" + TextBox用户名.Text + "' and 会员密码='" + TextBox密码.Text + "'"
            Dim myadapter As New MySqlDataAdapter(mysql, myConnection)
            '定义DataSet对象,用mysql命令串执行的结果填充数据集mydataset
            Dim mydataset As New DataSet
            myadapter.Fill(mydataset, "用户信息表")
            If mydataset.Tables("用户信息表").Rows.Count = 0 Then
                n += 1
                If n < 2 Then
                    MsgBox("用户名或密码错误!", MsgBoxStyle.OkOnly +
                   MsgBoxStyle.Exclamation, "信息提示")
                    TextBox用户名.Text = ""
                    TextBox密码.Text = ""
                    TextBox用户名.Focus() '设置输入焦点
                Else
                    MsgBox("已登入失败2次!退出系统", MsgBoxStyle.OkOnly +
                   MsgBoxStyle.Exclamation, "信息提示")
                    Me.Close()
                    登录界面.Close()
                End If
            Else
                MsgBox("欢迎光临!")
                用户操作界面.Show()
                Me.Close()
            End If
        End Sub
    

    *3.3 前台点歌模块界面设计及程序分析*

    会员用户在用户登录界面登录成功之后便可进入前台点歌模块的用户操作界面,在用户操作界面用户可以进行开始点歌、积分查询、密码修改和退出账号 四项操作,如图 3-8 所示。

    image.png

    图 3-8 用户操作界面

    在前台点歌系统模块中进行操作时将会涉及到歌曲信息表、歌手信息表、歌曲排行榜和我的歌单这四个 SQL 数据库关系表。

    *3.3.1 开始点歌窗口*

    用户点击开始点歌便会进入开始点歌窗口,该窗口是 KTV 点歌系统前台点歌 模块的主要用户操作界面,如图 3-9 所示。

    图3-9 开始点歌窗口

    (1) 歌曲搜索

    在开始点歌窗口,用户可以通过输入关键字实现数字点歌(通过检索歌曲编号进行歌曲搜索)、歌星点歌(通过检索歌手姓名进行歌曲搜索)、拼音点歌(通过检索歌曲拼音缩写进行歌曲搜索)和歌名点歌(通过检索歌曲名称进行歌曲搜索)。同时,这四种歌曲搜索方式均可以实现模糊搜索。

    1. 数字点歌
    '数字点歌
            If 关键字.Text = "" Then
                MsgBox("请输入关键字进行搜索!", MsgBoxStyle.OkOnly, "信息提示")
            Else
                Dim mysql2 As String = "SELECT * FROM 歌曲信息表 WHERE 歌曲编号='" + 关键字.Text + "'"
                mycmd.Connection = myconnection '指定mycmd对象的数据连接
                '定义mycmd对象要执行的SQL语句
                mycmd.CommandText = mysql2
                '定义myadapter2对象,用于满足一定条件的数据填充
                Dim myadapter2 As New MySqlDataAdapter(mycmd)
                '定义数据集mydataset
                Dim mydataset2 As New DataSet
                '填充数据
                myadapter2.Fill(mydataset2, "歌曲信息表")
                Me.DataGridView1.DataSource = mydataset2.Tables("歌曲信息表")
            End If
    

    图 3-10 数字搜索

    1. 歌星搜索

    图3-11 歌星搜索

    1. 拼音搜索

    图 3-12 拼音搜索

    1. 歌名搜索

    图3-13 歌名搜索

    1. 所有歌曲

    点击开始点歌窗口中的所有歌曲,在信息显示窗口将会显示所有歌曲的信息,执行效果如图 3-9 所示

    image.png

    图3-14 所有歌曲

    (2) 歌曲排行榜

    ​ 点击歌曲排行榜,则用户可以进入歌曲排行榜界面查看歌曲总点击率信息,点击返回按钮则会返回开始点歌界面。 当用户将选中的歌曲添加进我的歌单中时,歌曲排行榜中的总点击率便会加 1,同时将会更新到 SQL 数据库关系表中的歌曲排行榜表。SQL 数据库关系表的 歌曲排行榜表的排序是按照总点击率的降序排列,所以总点击率越大则在开始点 歌窗口中的歌曲排行榜中的位置越靠前,继而实现歌曲热度排名功能。

    点击刷新按钮后歌曲排行榜的信息将会刷新,用户便可查看到最新的总点击率。将所选歌曲添加进我的歌单。

    (3) 我的歌单

    点击查看我的歌单会在歌曲信息显示窗口显示出我的歌单表的所有信息,如图 3-17 所示。

    图3-15 查看我的歌单

    在开始点歌窗口完成歌曲搜索之后可以直接在歌曲信息显示窗口点击想点播的歌曲,此操作可以直接将被点击的歌曲添加进我的歌单。在该操作过程中, 系统会询问用户是否要添加所选歌曲到我的歌单,若用户选择否则歌曲不会被添 加。当某一首歌曲被用户添加进我的歌单中时,该歌曲在歌曲排行榜中的总点击 率将会加 1。图 3-15 是未添加选定歌曲至我的歌单时的歌曲排行榜界面,图 3- 16 是添加了选定歌曲至我的歌单后的歌曲排行榜界面。

    *3.3.2 用户积分查询和密码修改*

    在用户操作界面,用户可以很便捷的查询个人账号的积分以及对账号密码进 行修改,如图 3-23 和图 3-24 所示。

    Dim myconnion As New MySqlConnection("Server=localhost;User Id=root;Password=123456;Database=jm_database;Port=3306;")
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            '积分查询
            If 用户名.Text = "" And 密码.Text = "" Then
                MsgBox("请填入用户名和密码!", MsgBoxStyle.OkOnly, "信息提示")
            Else
                Dim integral As Integer = 0
                Dim myconn As String = "SELECT 积分 FROM 会员信息表 "
                Dim mysql As String = "SELECT 积分 FROM 会员信息表 WHERE 会员姓名 ='" + 用户名.Text + "' and 会员密码 ='" + 密码.Text + "'"
                Dim mycon As New SqlClient.SqlConnection(myconn)
                Dim mycomm As New SqlClient.SqlCommand(mysql, mycon)
                mycon.Open()
                integral = mycomm.ExecuteScalar()
                mycon.Close()
                MsgBox("您的账号积分 :" & integral, MsgBoxStyle.DefaultButton1, "账号积分")
            End If
    End Sub
    

    图 3-16 用户积分查询 图 3-17 用户密码修改

    图3-18 修改密码

    *3.4 后台管理模块界面设计及程序分析*

    在登录页面选择管理员登录,并使用正确的管理员用户名和密码登录后便可 进入 KTV 后台管理系统。在后台管理系统中,管理员可以对用户信息、歌曲信息 和歌手信息进行管理,也可以修改管理员账号的密码。若管理员具有超级管理员 的权限,则可以使用超级管理员账号和密码获取超级管理员权限,之后便可对系 统的普通管理员信息和超级管理员信息进行管理。KTV 后台管理系统操作界面如 图 3-25 所示。

    图3-19 KTV 后台管理系统操作界面

    3.4.1 用户信息管理

    用户信息管理操作界面如图 3-26 所示。在不输入任何用户信息时,管理员 可以通过点击查询用户信息查询所有用户的信息。填入会员编号或者会员姓名, 可以查询指定用户的信息,同时还可以实现模糊搜索;填入完整的用户信息后,可以点击添加用户将新的用户添加进会员信息表,若填入的信息不完整则系统会提示填入完整的用户信息,如图 3-27 所示;若要删除某用户的信息时可以只填入会员编号或者会员姓名,如图 3-28 所示;更新某用户时必须完整的填入用户 信息,然后再对用户信息进行更改。

    图3-20 用户信息管理操作界面

    '查询用户信息
            If 会员编号.Text = "" And 会员姓名.Text = "" Then
                '定义SqlDataAdapter对象
                Dim mysql1 As String = "SELECT * FROM 用户信息表"
                Dim myadapter1 As New MySqlDataAdapter(mysql1, myconnection)
                '定义DataSet对象,用mysql命令串执行的结果填充数据集mydataset
                Dim mydataset1 As New DataSet
                myadapter1.Fill(mydataset1, "用户信息表")
                Me.DataGridView1.DataSource = mydataset1.Tables("用户信息表")
            Else
                '定义SqlCommand对象
                Dim mycmd As New MySqlCommand
                If 会员编号.Text <> "" Then
                    Dim mysql2 As String = "SELECT * FROM 用户信息表 WHERE 会员编号='" & 会员编号.Text & "'"
                    mycmd.Connection = myconnection '指定mycmd对象的数据连接
                    '定义mycmd对象要执行的SQL语句
                    mycmd.CommandText = mysql2
                    '定义myadapter2对象,用于满足一定条件的数据填充
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    '定义数据集mydataset
                    Dim mydataset2 As New DataSet
                    '填充数据
                    myadapter2.Fill(mydataset2, "用户信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("用户信息表")
                Else
                    Dim mysql2 As String = "SELECT * FROM 用户信息表 WHERE 会员姓名='" & 会员姓名.Text & "'"
                    mycmd.Connection = myconnection
                    mycmd.CommandText = mysql2
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    Dim mydataset2 As New DataSet
                    myadapter2.Fill(mydataset2, "用户信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("用户信息表")
                End If
            End If
    

    图3-21 添加用户时的系统提醒

    图3-22 删除会员用户

    图3-23 更新会员信息

    *3.4.2 歌曲信息管理和歌手信息管理*

    歌曲信息管理和歌手信息管理在实现上与用户信息管理大致相同。这两个模 块所要实现的功能是对歌曲信息和歌手信息进行增删改查。

    图 3-24 歌曲信息管理操作界面

    显示部分代码(歌曲查询)  
      Private Sub 查询歌曲信息_Click(sender As Object, e As EventArgs) Handles 查询歌曲信息.Click
            '查询歌曲信息
            If 歌曲编号.Text = "" And 名称.Text = "" Then
                Dim mysql1 As String = "SELECT * FROM 歌曲信息表"
                Dim myadapter1 As New MySqlDataAdapter(mysql1, myConnection)
                Dim mydataset1 As New DataSet
                myadapter1.Fill(mydataset1, "歌曲信息表")
                Me.DataGridView1.DataSource = mydataset1.Tables("歌曲信息表")
            Else
                '定义SqlCommand对象
                Dim mycmd As New MySqlCommand
                If 歌曲编号.Text <> "" Then
                    Dim mysql2 As String = "SELECT * FROM 歌曲信息表 WHERE 歌曲编号 LIKE '%" & 歌曲编号.Text & "%'"
                    mycmd.Connection = myConnection '指定mycmd对象的数据连接
                    '定义mycmd对象要执行的SQL语句
                    mycmd.CommandText = mysql2
                    '定义myadapter2对象,用于满足一定条件的数据填充
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    '定义数据集mydataset
                    Dim mydataset2 As New DataSet
                    '填充数据
                    myadapter2.Fill(mydataset2, "歌曲信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("歌曲信息表")
                Else
                    Dim mysql2 As String = "SELECT * FROM 歌曲信息表 WHERE 名称 Like '%" & 名称.Text & "%'"
                    mycmd.Connection = myConnection
                    mycmd.CommandText = mysql2
                    Dim myadapter2 As New MySqlDataAdapter(mycmd)
                    Dim mydataset2 As New DataSet
                    myadapter2.Fill(mydataset2, "歌曲信息表")
                    Me.DataGridView1.DataSource = mydataset2.Tables("歌曲信息表")
                End If
            End If
    End Sub
    

    image.png

    图 3-25 歌手信息管理操作界面

    *3.4.3 管理员密码修改*

    图3-26 管理员密码修改

    *3.4.4 超级管理员*

    图3-27 超级管理员登录页面

    图3-34 管理员信息管理操作界面

    *第4章 系统维护及收获体会*

    *4.1********系统********运行与维护*

    数据库试运行合格后,数据库开发工作就基本完成,可以投入正式运行了。但是由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。在数据库运行阶段,对数据库经常性的维护工作主要是由数据库管理员完成的。数据库的维护工作主要包括以下几方面:

    4.1.1 *数据库转储策略*

    1、定期进行数据转储,制作后备副本。但是转储又是十分耗费时间和资源的,不能频繁进行。

    2、DBA应该根据数据库使用情况确定适当的转储周期和方法

    例如:每天晚上或每周进行一次动态增量转储;每月进行一次静态海量转储。

    img

    数据库的转储和恢复是系统正式运行后最重要的维护工作之一。数据库管理员要针对

    不同的应用要求制定不同的转储计划,以保证一旦发生故障能尽快将数据库恢复到某种一

    致的状态,并尽可能减少对数据库的破坏。

    4.1.2 *数据库********备份和恢复方案*

    image.png

    *服务器列表*

    *服务器名称**服务器IP**服务器IP*
    DB_Server1172.31.204.81D:\Wind\bak\SQLServer\
    DB_Server2172.31.204.85D:\Wind\bak\SQLServer\
    File_Server192.1.1.235E:\wind\Bak\

    *1、********主数据库备份*

    DB Server1的主数据库,通过SQL JOB定期备份,形成Bak文件文件存放本地硬盘。

    *2、********备份文件上传*

    定期任务计划执行DB Server1的Bat脚本1,将Bak备份文件传输到File Server的FTP服务器。

    *3、********备份文件下载*

    定期任务计划执行DB Server2的Bat脚本1,将Bak备份文件从File Server的FTP服务器下载到DB Server2本地。

    *4、********备份库恢复*

    通过DB Server2的SQL JOB,定期恢复备份数据库。

    *5、********备份文件清理*

    ****DB Server1备份文件清理****:通过任务计划定期执行Bat脚本2,每天定期清理DB Server1的备份文件,只保留一天前的Bak文件。

    ****File Server备份文件清理****:通过任务计划定期执行Bat脚本2,每天定期清理File Server的备份文件,只保留最近七天的Bak文件。

    ****DB Server2备份文件清理****:通过任务计划定期执行Bat脚本2,每天定期清理DB Server2的备份文件,只保留一天前的Bak文件。

    4.1.3 *其他维护策略*

    1. *数据库的安全性、完整性控制*

    在数据库运行过程中,由于应用环境的变化,对安全性的要求也会发生变化,比如有的数据原来是机密的,现在则可以公开查询,而新加入的数据又可能是机密的。系统中用户的密级也会改变。这些都需要数据库管理员根据实际情况修改原有的安全性控制。同样,数据库的完整性约束条件也会变化,也需要数据库管理员不断修正,以满足用户要求。

    2. *数据库性能的监督、分析和改造*

    在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改进系统性能的方法是数据库管理员的又一重要任务。目前有些关系数据库管理系统提供了监测系统性能参数的工具,数据库管理员可以利用这些工具方便地得到系统运行过程中一系列性能参数的值。数据库管理员应仔细分析这些数据,判断当前系统运行状况是否为最佳,应当做哪些改进,例如调整系统物理参数或对数据库进行重组织或重构造等。

    3. *数据库的重组织与重构造*

    数据库运行一段时间后,由于记录不断增、删、改,将会使数据库的物理存储情况变坏,降低数据的存取效率,使数据库性能下降,这时数据库管理员就要对数据库进行重组织或部分重组织(只对频繁增、删的表进行重组织)。关系数据库管理系统一般都提供数据重组织用的实用程序。在重组织的过程中,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。数据库的重组织并不修改原设计的逻辑和物理结构,而数据库的重构造则不同,它是指部分修改数据库的模式和内模式。

    由于数据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体实体间的联系也发生了变化等,使原有的数据库设计不能满足新的需求,品要调整数据库的模式和内模式。例如,在表中增加或删除某些数据项,改变数据项为类型,增加或删除某个表,改变数据库的容量,增加或删除某些索引等。

    *4.2* *收获和体会*

    *4.2.1 收获与体会*

    通过一个月的课程设计,基本完成了 KTV 点歌系统的设计。前台点歌可以实现 按数字点歌、拼音点歌、歌星点歌和歌名点歌,可以实现歌曲的媒体播放功能, 同时也可以查看歌曲排行榜。后台信息管理可以实现用户、歌曲、歌手和管理员 的信息管理。但与此同时,此次的设计仍存在许多的不足,比如无法顺序播放歌 单中的歌曲,需要将所有的歌曲信息导入歌曲排行榜才能完整实现该功能。 同时,通过这次课程设计我巩固了MySQL数据库和 VB.NET 界面开发的知识,通过实践学习到很多课本上学不到的知识,学习到了很多解决实际问题的经验。也让我深刻的意识到在做数据库设计时,必须包含需求分析、概念模式设计、逻辑模式设计、数据库实施、数据库运行和维护 5个阶段。此次设计的系统很简洁也很微小,在设计过程中简化了非常多的步骤,在调试过程中,总会想到更多符合实际需求的条件去充实完善系统,也知道自己当初设计的时候考虑略欠周全,也明白了实际应用的系统是需要不断更新、维护,是需要许多人的智慧和努力。

    *4.2.2 系统评价*

    *1、系统优缺点*

    基本实现增删改查基本操作,前台点歌可以实现 按数字点歌、拼音点歌、歌星点歌和歌名点歌,可以实现歌曲的媒体播放功能, 同时也可以查看歌曲排行榜。后台信息管理可以实现用户、歌曲、歌手和管理员的信息管理。但与此同时,此次的设计仍存在许多的不足,比如无法顺序播放歌 单中的歌曲,需要将所有的歌曲信息导入歌曲排行榜才能完整实现该功能。

    2、*系统完善设想*

    除了展示中未提及或具体展示的部分,系统还可以增加注册功能以及用户密码加密,数据库中密码的储存形式可以通过MD5 或者SHA1形式存在,进一步增强加密性。

    *参考文献*

    [1]龚沛曾,袁科萍等编著. 数据库原理及应用[M]. 北京:高等教育出版社

    [2]盛莉.基于MySQL的数据管理平台设计[J].信息与电脑(理论版),2020,32(22):152-153.

    [3]马晓阳,薛钢,何磊.基于VB和MySQL的焊接工艺数据系统的设计与实现[J].材料开发与应用,2020,35(04):98-102.

    [4]臧玉琴,腾跃编著. Visual Basic 界面、多媒体操作系统程序设计[M]. 北京:人民邮电出版社

    [5]蔡宏编著. Visual Basic.NET 案例开发集锦[M]. 北京:电子工业出版社

    [6]冯小燕,刘斌等编著. Visual Basic 项目开发案例精粹[M]. 北京:电子工业出版社

    [7]李丹,赵占坤,丁宏伟,史彦芳. MySQL 数据库管理与开发实用教程[M]. 北京:机械工业出版社,2009.11

    [8]姚永一,MySQL 数据库技术实用教程,北京:电子工业出版社,2010

    [9]壮志剑,数据库原理与MySQL,北京:高等教育出版社,2008

    [10]何玉洁,梁琦,数据库原理与应用(第二版),北京:机械工业出版社,2011

    [11]张志强,孙福兆,余健.MySQL课程设计案例精编. 北京:清华大学出版社,2005

    [12]张丽萍,汤涌涛. Visual Basic 2010 从入门到精通[M]. 北京:清华大学出版社

    [13]王珊,萨师煊. 数据库系统概论(第四版)[M]. 北京:高等教育出版社

    [14]郑阿奇. Visual Basic 教程[M]. 北京:清华大学出版社,2010

    [15]段兴.Visual Basic 数据库实用程序设计 100 例[M]. 北京:人民邮电出版社

    [16]王运坚. Visual Basic 6.0 应用指南[M]. 北京:人民邮电出版社

    [17]曹军生. My SQL 5.5 实用教程[M]. 北京:北京理工大学出版社

    Z 几个雷区

    答辩过程所听到的几个坑

    1. ER图不能显示外码
    2. ER图一旦出现关系是“管理”需要判断,是否仅为增删查改操作,
    3. 用户授权区分,功能确实没有这个权限按钮,但在数据库本身是有的,最好分三个角角色:用户、管理员、root

    附代码资源:

    数据库课程设计-KTV点歌系统(VB.net 窗体,MySQL5.5)

    是我,Zack

    2021年1月13日

    • 自发整理,仅供参考

    ​ 希望对大家有所帮助

    • 制作不易,如果觉得文章不错,有帮助和启发,可以点点赞👍
    展开全文
  • Vb提供了API函数SetWindowLong和GetWindowLong,可以让我们很容易取得对窗口的操作;通过对窗口属性的操作,可以更改窗口的显示风格。有些看来是正常情况下无法实现的窗口,现在你可以很容易的实现。只要你想到,更...
  • Option ExplicitPrivate ObjOldWidth As Long '保存窗体的原始宽度Private ObjOldHeight As Long '保存窗体的原始高度Private ObjOldFont As Single '保存窗体的原始字体比 Private Sub Form_Resize() ...
  • '============判断窗体是否已经加载 Private Function FormIsLoad(formCaption As String) As Boolean '真为加载,假为未加载  On Error Resume Next  Dim frm As Object  FormIsLoad = False  ...
  • vb编程语言怎么设置多个启动对象的窗体,比如同时显示登录和注册,启动窗体对象的配置多个窗体实现?
  • VB机房收费系统04——注册窗体

    热门讨论 2017-12-11 19:42:08
    先挂一张注册的流程图 正文 If Not语句 If Not 是如果不是的意思,具体应用上述VB语句中,它起的作用是如果txtSID里面的文本不是或没有,系统提示请输入学号。 为列表框添加内容 不在添加控件过程中编写,在...
  • VB 利用API创建窗体的模块代码

    千次阅读 2008-03-29 02:21:00
    窗体运行的主函数,在注册这个窗体时已经指定的 Public   Function WndProc() Function  WndProc( ByVal  hwnd  As   Long ,  ByVal  uMsg  As   Long ,  ByVal  wParam  As   Long ,  ByVal  ...
  • VB Decompiler是一个用来反编译VB编写的程序的工具(支持VB5.0和VB6.0)。VB Decompiler反编译成功后,能够修改VB窗体的属性(例如汉化),查看函数过程等,是一款VB反编译利器!
  • vb6之CoCreateInstanceEx加载Com对象中国第一个,其他下载的全是VC++等代码,外国网站不让访问,我们百度能搜到的全是旧信息,中国这样怎么发展?
  • 上一篇博客已经介绍了WebService的简单实例,现在讲述如何利用WebService实现简单的注册登录 首先在数据库中创建一个Users表,我设置为主键自增: 其实注册登录就只是对表进行增加查找,于是在此过程中肯定要...
  • VB PHP实现机器码注册码计算并生成,使用:Key_API.dll,只做了一个PHP API接口,用法:把key_api.dll 复制到你的PHP目录下 ext 目录下 例:\php52\ext 用AIP_REG.bat 注册下控件,如果PHP不能正常调用请修改PHP.ini...
  • vb 窗体画面打不开

    2010-11-24 16:48:00
    前段时间 ,我电脑的vb 窗体画面打不开,只要一双击,就自动关闭。   忽然有一天,重新注册了一下 msstdfmt.dll就好了。   运行: regsvr32 msstdfmt.dll
  • 二级VB培训笔记06:窗体与常用控件综合案例【个人信息注册】 一、常用控件属性与方法思维导图 二、综合案例——个人信息注册 1、创建工程,修改名称为“个人信息注册”,窗体名称设置为“frmRegistration”,...
  • 机房收费系统VB版(三)——窗体设计

    千次阅读 热门讨论 2014-09-08 21:43:44
    在边建表边敲窗体的过程中,遇到很多问题,所以一边改,一边继续进行,最后将窗体改成下边这个模样。 窗体菜单: 窗体功能分布图: 第一次做的功能分析图: 解释说明:  这次画的图与最初画的系统...
  • Vb.net WinForm如何开发一个登录界面

    千次阅读 2018-11-01 10:46:56
    Vb.net WinForm的小伙伴在创建登录界面时有个疑问,为什么我关闭登录窗体,然后再打开业务窗体时,程序自动退出了呢。 我简单讲一下,大家知道,WinFrom程序有一个 Sub Main入口,C#会在初始化项目时自动创建,但是为...
  • SkinH_VB6使用帮助

    2012-08-11 13:19:50
    SkinH_VB6使用帮助 对于SkinH_VB6.dll该文件网络上没有明确帮助,特此制作 SkinH_VB6使用帮助 对于SkinH_VB6.dll该文件网络上没有明确帮助,特此制作 SkinH_VB6使用帮助 对于SkinH_VB6.dll该文件网络上没有明确帮助...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,849
精华内容 2,339
关键字:

vb注册窗体