机房收费系统之问题记录(1)

来源:互联网 发布:夏普55寸电视 知乎 编辑:程序博客网 时间:2024/06/05 10:26

【背景】

        在自己对于学习产生厌烦或者是其他消极的情绪时,去寻找一位巨人,让她给自己剖析一下自己的情况,并且从中给自己一些鼓励,这样会让自己向前走的更轻松一些。

【情节】

       在昨天我去师傅那儿验了下机房,其实验机房的目的主要有三:一是想让师傅看看自己的问题主要还有那些儿,也让自己明白自己的机房已经到了什么样的程度;二是自己敲机房的时间过长,产生点儿厌烦的心理,想要去师傅那化解一下自己的消极情绪;三是对于机房还有不懂得问题,让师傅帮自己理一下逻辑。
        不去不知道,一去吓一跳。果然自己的问题主要就是出现在自己的逻辑问题上。
        首先,登录用户的权限设置问题:

        不去不知道,一去吓一跳。果然自己的问题主要就是出现在自己的逻辑问题上。
        首先,登录用户的权限设置问题:

        这个问题困扰了我好几天,根本就不明白出现了什么问题,自己设置的代码在调试的时候就自动跳过,也就是说不走这段程序,师傅说:那肯定就是这段代码出现了问题。下面是我以前的代码:

If mrc1.EOF = False Then      If Trim(mrc1.Fields(0)) = "一般用户" Then                 frmMain.Operator.Enabled = False         frmMain.Administrator.Enabled = False      ElseIf Trim(mrc1.Fields(0)) = "操作员" Then         Administrator.Enabled = False      End If      mrc1.Close      Me.HideEnd If
          自己还傻傻的不知道问题出在了哪里,师傅一下就指出了问题所在。在进行了断点调试后,她问我:第0列在数据库中所代表的字段是什么?我说是“UserID”,她说:“userID”读取了一个数字,而我在等号后面写的是“一般用户”,这是个字符串,她说这怎么能相等呢?这时我才明白原来自己的字段值取错了,而且自己的逻辑想法就出现了错误。我的想法是:“在txtsql语句中查询到了userID这个记录,然后对应的会找到她得‘一般用户’这个设置条件”,但是明显证明我错了。txtsql语句的确查询到了记录,但是下面的是自己给设置的限制条件,而不是去对应记录里,数据库去查找。
       在我的数据库中第二列是level,也就是对于“一般用户”“管理员”“操作员”写明的地方,接下来我的代码就成了这个样子:

If mrc1.EOF = False Then      If Trim(mrc1.Fields(2)) = "一般用户" Then                 frmMain.Operator.Enabled = False         frmMain.Administrator.Enabled = False      ElseIf Trim(mrc1.Fields(2)) = "操作员" Then         Administrator.Enabled = False      End If      mrc1.Close      Me.HideEnd If
           现在再运行的时候就成功了,虽然只是一个小小的问题,但是还是能够从小处体现出我的逻辑能力还是较差,还有待提高。而且师傅还建议说如过涉及到sql语句查询时,可以将自己写的sql语句在数据库中进行测试,如果没有问题,那么这句查询就是正确的,反之就是查询语句出现了错误,而且要善于利用断点调试,看看断点所给出的查询提示,从而让自己的调错不像是大海捞针一般。
【结尾】

        在这次的验机房的过程中,自己的心态也得到了调整,而且经过师傅思路的整理,自己的逻辑也有了更清晰的发展,对于机房调错也学习到了一些小技巧,收获满满。一篇不能够写完我所有的问题,接下来就请期待下一篇的故事情节。

0 0