机房收费系统之组合查询

增删改查,数据库中最基本的四个操作。不论是学生信息管理系统,还是机房收费系统,它们一个都不少。这一次,就来说说“查”。

刚开始,看到机房收费系统的查询,傻眼了,横看,四个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句:

机房收费系统之组合查询

机房收费系统之组合查询

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

上一篇:机房收费系统之结账与报表


下一篇:【MySQL】常见错误与常用命令的集锦