用好已有的东西就是进步——重新认识right 函数

机房收费系统进行时,遇到了组合查询。先看一下界面:

在这里重点说的不是三个组合条件的逻辑结构,而是针对字段名的选择。大家都知道我们在查询结果集时 定义的SQL 语句是这样的:select * from tablename where fieldname  =|>|<  fieldvalue。

看一下这个语句:fieldname 是从图中字段名中选择的,这里有:卡号,姓名,上机日期,上机时间,下机日期,下机时间,消费金额,余额;而fieldvalue 从要查询的内容中选择。这里存在一个复合实际情况的对应关系:

即:当检索的字段是:卡号,消费金额,余额时 ,我们把它的检索值确定为数字,上机时间和下机时间的检索值确定为时间(hh:mm:ss),上机日期,下机日期的检索值确定为日期(yyyy-mm-dd),剩下的姓名定位else ,这样把字段进行一个分类以后,便于我们对用户各种各样的输入统一管理。当检索的字段为卡号时 ,我们就要检查一下查询内容是不是数字,如果是则开始查询,若不是,则提示用户输入数字,大大方便了我们的查询速度。随之就有了一个麻烦?我在选择这几个字段时,用到了select  case ,可是这里有八个字段,难不成我要一个一个进行case ?像上机时间,下机时间,上机日期和下机日期这类,长得很像的词,我可不可以把他们归为一类,用一个case 语句,来限定所属类型是日期或者时间呢?

答案是可以的。这里就用到了大家很熟悉不过的right函数。

right函数的功能是从字符串右端取指定个数字符。 语法Right ( string, n ) 。

看代码:

Select Case Right(comboField1.Text, 2)

'对字段输入进行限制

    Case "日期"

        If Not IsDate(txtFieldValue1.Text) Then

            MsgBox "请输入正确的日期格式:yyyy-mm-dd。", vbOKOnly + vbCritical, "输入提示"

            txtFieldValue1.SetFocus

            txtFieldValue1SelStart = 0

            txtFieldValue1.SelLength = Len(txtFieldValue1.Text)

            GoTo proc_exit

        Else

            txtFieldValue1.Text = Format(txtFieldValue1, "yyyy-mm-dd")

                

        End If

        

    Case "时间"

       If Not IsDate(txtFieldValue1.Text) Then

            MsgBox "请输入正确的日期格式:hh:mm:ss。", vbOKOnly + vbCritical, "输入提示"

            txtFieldValue1.SetFocus

            txtFieldValue1SelStart = 0

            txtFieldValue1.SelLength = Len(txtFieldValue1.Text)

            GoTo proc_exit

        Else

            txtFieldValue1.Text = Format(txtFieldValue1, "hh:mm:ss")

                

        End If

    

    End Select


 

有这个函数,我们可以把属于时间的归为一类,属于日期的归为一类,原来的四个case语句,现在可以缩减到两个,大大节省了代码量,而且过程相对不那么的冗余了。现在我们是四个这样的语句,如果写出四个语句,你可能觉得还不是那么的费劲,可是要是将来有八个,十六个呢?是不是就真的是把大量的时间用到做重复的工作上了?这不是我们追求的。

 

有些东西不一定非要用到多么先进的语言,多么高深的技术才可以看出成就,其实我们周围有好多可以利用的资源,有的甚至都是基础,只是我们没有发现而已。我们还是习惯于知识就是知识,还没有做到把知识运用到实践中,学的新知识只是在说起来的时候知道是干什么的,而真正道理实践中,想到这个知识却费劲了。不追求有多高,一定要追求踏实。用好我们学过的就是在进步。

 

写到这想起一句话,要站在巨人的肩膀上看问题,要模仿巨人的做法。记得在敲学生信息管理系统的时候对一些结构还是有点小看法的,常常会自己问自己:为什么要这样写呢?有的甚至全程都没有用到?后来等自己开始做机房收费系统时 ,遇到了好多选择,判断,组合等情况,不同的是机房收费比学生信息系统在判断上稍微复杂点,我要是按照我最初单独想法来,想好半天代码,有时还是费力不讨好,在苦思中突然想到了信息系统中有过类似的情况,开始翻出原代码,开始了模仿,真的不一样,差距就在原来我纠结为什么人间要这么做,现在有点开始懵懂了。

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值