您的位置:首页 > 其它

【机房重构】——修改密码之全局变量

2015-04-12 15:30 239 查看
    前些天,在修改密码这问题给困住了,网上肯定有解决办法,也有提高班同学们写的博客,但是记得米老师说过,站在巨人的肩膀上是有前提的,所以还是决定自己解决问题,一定要自己解决。中间因为作品展停了几天,当我再次思考这个问题,调啊调,最终被我解决了,真的是很开心!当时特别兴奋,可能我比别人慢一点,花的时间也多了一点,但没关系,我有收获就行了,再提高的效率,我的进度就能赶上来的。

    修改密码的第一步是要核对当前用户,将原密码输入,判断原密码是否正确,而我就卡到了这一块。这个问题,就是保存当前登录用户的用户名和密码。

    三层还没彻底懂呢,晕晕乎乎的过去了。当看到这的时候,就想到了之前第一次做的机房收费系统。于是就打开了VB代码,发现它是定义了一个全局变量。

Public UserName As String


    那我也定义一个全局变量呗!也添加一个Module,在Module里写入

Module Module1
Public User As String
Public PassWord As String
End Module


    然后,在窗体登录成功的时候,将当前用户名,以及密码记录下来,用实体来传入B层,在传入D层去判断输入的原密码是否正确。结果密码修改成功。

    与师傅交流后,定义一个类,写在类里,是不是也可以这样写呢?于是我定义了一个类,名为Module。

Public Class Model
Public  User As String
Public  PassWord As String
End Class


     这样写的运行结果,是密码修改失败,数据库也没有更改。

     最后上网查了查,VB.NET声明全局变量有两种。  

(1)在模块中直接用Public来声明,通过变量名来访问,也就是可以直接用User,PassWord来访问。

(2)在类中,要使用Shared来声明,要通过,类名+点+变量名来访问。

    在VB.NET中,shared变量,如其名,为共享变量,指一个或多个被声明的变量将被共享,谁都可以用,那么所有实例会访问相同的存储位置,而如果一个实例更改了变量值,所有实例都会访问更新后的值。那在类中,定义的时候,可以访问,但不写Shared,就不能被共享了,也就达不到“如果一个实例更改了变量值,所有实例都会访问更新后的值”这个目的了。

    所以最终在类中应该改为:
Public Class Model
Public Shared User As String
Public Shared PassWord  As String
End Class

  总结:综上两种情况,我觉得还是写在模块里比较好,这样访问的时候直接用变量名,多简单啊!

   当自己敲出来的时候,心里边特别高兴!一步一步来吧,确保每天都有进步,继续前进!

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息