机房收费系统之组合查询

简介: <span style="white-space:pre"><span style="font-family:KaiTi_GB2312; font-size:24px"><strong><span style="white-space:pre"></span><span style="white-space:pre"></span>增删改查,数据库中最基本的四个操作。不论是学生信息管理系统
增删改查,数据库中最基本的四个操作。不论是学生信息管理系统,还是机房收费系统,它们一个都不少。这一次,就来说说“查”。

刚开始,看到机房收费系统的查询,傻眼了,横看,四个Label框,所谓的查询条件;竖看,多个文本框、组合框。



                                              

在运行了很多次系统之后,终于越来越有思路了。
首先,我们很清楚查询的两种形式:简单查询和组合查询。这两者的划分,组合关系的选择就是关键了。

所以,根据上面所给的各个控件,我们可以自由选择是简单查询还是组合查询。不管做什么,思路很重要,思路决定出路。下面是自己对组合查询的思路梳理: 

简单地说,也就是如果想要进行组合查询,在将查询条件填写完整的前提下,必须将组合关系也填写上,否则,查询失败。


下面是关于查询的代码,自己也是采用了两种方法运行。也就是采用了不同的方法将文本框中的字段转换为SQL中的字段,即是否调用函数。
一.直接写查询代码。
首先进行转化:

<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong>'将组合框中的选中字段转化为SQL语句中的字段
    If comboFieldOne.Text = "卡号" Then comboFieldOne.Tag = "UserCardID"
    If comboFieldOne.Text = "学号" Then comboFieldOne.Tag = "ClassNo"
    If comboFieldOne.Text = "姓名" Then comboFieldOne.Tag = "UserName"
    If comboFieldOne.Text = "性别" Then comboFieldOne.Tag = "sex"
    If comboFieldOne.Text = "性别" Then MsgBox "请填写男、女", vbOKOnly + vbExclamation, "警告"
    
    If comboFieldOne.Text = "系别" Then comboFieldOne.Tag = "Department"
    If comboFieldOne.Text = "年级" Then comboFieldOne.Tag = "grade"
    If comboFieldOne.Text = "班级" Then comboFieldOne.Tag = "class"</strong></span>

接着进行查询:

<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong>'判断已选择准确的查询条件一
    If comboFieldOne.Text = "" Then
        MsgBox "字段不能为空,请输入第一个查询字段!", vbOKOnly + vbExclamation, "警告"
        comboFieldOne.SetFocus
        Exit Sub
    Else
        If comboOperationOne.Text = "" Then
            MsgBox "操作符不能为空,请输入第一个操作符!", vbOKOnly + vbExclamation, "警告"
            comboOperationOne.SetFocus
            Exit Sub
        Else
            If txtInquireOne.Text = "" Then
                MsgBox "查询内容不能为空,请输入第一个查询内容!", vbOKOnly + vbExclamation, "警告"
                txtInquireOne.SetFocus
                Exit Sub
            End If
        End If
         '查询语句一
        strTxtSQL = "select * from tb_StudentInformation where (" & comboFieldOne.Tag & comboOperationOne.Text & "'" & txtInquireOne.Text & "'"
</strong></span>

每选择一个查询条件,只要将strTxtSQL语句联结即可。
二.调用函数编写的代码。
<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong>Public Function FieldName(StrFieldName As String) As String  '判断选择字段函数

    Select Case StrFieldName
        Case "卡号"
            FieldName = "UserCardID"
        Case "姓名"
            FieldName = " UserName"
        Case "上机日期"
            FieldName = "OnlineDate"
        Case "上机时间"
            FieldName = "OnlineTime"
        Case "下机日期"
            FieldName = "LineDate"
        Case "下机时间"
            FieldName = "LineTime"
        Case "消费金额"
            FieldName = "Cost"
        Case "余额"
            FieldName = "ExtraMoney"
        Case "备注"
            FieldName = "Comment"
       。。。。。。
    End Select
    
End Function
Public Function ComboInquire(StrCombo As String) As Boolean  '定义函数:判断是否是组合查询

    If StrCombo = "" Then
        ComboInquire = False
    Else
        ComboInquire = True
    End If
    
End Function</strong></span>

两者本质上其实一样,只是采用第二种,代码量不大。
上面的是机房收费系统的查询,下面不如拿它和学生管理的查询比较一下。


应该都记得,学生中的查询走到哪儿都是这三个复选框,可以选择多个,也可以只选择一个。这就看到了机房查询和它的相同之处了。
查询语句都是单个SQL或者多个SQL间的联结。
学生查询SQL句:


机房查询SQL句:



这一路,还是不要瞎想,还是不要恐惧,只要去做,什么都可以的。

目录
相关文章
|
1月前
|
关系型数据库 MySQL
Mysql基础第十七天,使用子查询
Mysql基础第十七天,使用子查询
17 0
|
1月前
|
关系型数据库 MySQL
Mysql基础第十天,数据过滤
Mysql基础第十天,数据过滤
21 0
Mysql基础第十天,数据过滤
|
12天前
|
关系型数据库 MySQL 定位技术
解谜MySQL索引:优化查询速度的不二法门
解谜MySQL索引:优化查询速度的不二法门
16 0
|
1月前
|
关系型数据库 MySQL
Mysql基础第二十天,组合查询
Mysql基础第二十天,组合查询
16 0
Mysql基础第二十天,组合查询
|
9月前
机房收费系统—组合查询逻辑分析
机房收费系统—组合查询逻辑分析
|
9月前
|
数据库
机房收费系统——学生基本信息维护(组合查询,选中整行)
机房收费系统——学生基本信息维护(组合查询,选中整行)
39 0
机房收费系统——学生基本信息维护(组合查询,选中整行)
|
10月前
|
存储 SQL 数据库
【机房重构】组合查询—存储过程
【机房重构】组合查询—存储过程
28 0
|
11月前
|
SQL 监控 算法
查询需求闻风而来,联表查询知多少?逐步解剖它
查询需求闻风而来,联表查询知多少?逐步解剖它
|
SQL
【机房收费系统——组合查询】
【机房收费系统——组合查询】
45 0
【机房收费系统——组合查询】
|
存储 设计模式 算法
【机房重构】——模板方法解决组合查询
【机房重构】——模板方法解决组合查询
38 0
【机房重构】——模板方法解决组合查询

热门文章

最新文章