重构过机房收费系统的同学相信都知道在SQLHelper中的两类函数:专为添加定义的函数和为增删改定义的函数。说实话,作为菜鸟的我,不仅仅对这个问题很疑惑,对定义函数时到底是使用boolean还是使用datatable也是懵懵哒。一直想问问别人,但是发现,在没有实例的情况下,很难讲懂,所以,就这样被自己的懒惰拖拉下来了。直到遇见了它——“找不到表0”,它把我逼上了墙角,让我不得不去自己想这之间的关系。终于,在雷哥和建敏的帮助下,我成功的解决了我的错误。
在SQLHelper中为什么要把增删改和查分开呢?
如果仅仅是查询用户是否存在,查询旧密码是否正确,都可以用Boolean。但是,如果要返回用户的信息,比如学生上机记录,工作人员的上机记录,这时候就需要返回一张表,可以把表中具体的信息反馈到U层,而不仅仅是True or false .
所以,我开始改自己的代码。在修改密码和添加用户的时候,SQLHelper中都用到
Public Function ExecSelect(ByRef cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable
Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Boolean
我要走两个来回,第一个来回是,判断以前的密码对不对,用户是否存在,这时候用第一个。而修改密码是否成功或者添加用户是否成功这些内容,我只需要知道,成功还是失败,所以,用第二个就可以了。其实,现在想想,修改密码和添加用户的第一个来回用第一个也是可以的,反正也不用表中具体的信息。
不知道讲到这里,读者明白了没,希望我没有把你讲晕,嘻嘻。
欠下的总是要还的,学习不能懒啊!