小变量,大智慧
遇到一个小问题,在这里写一下,积累一下小知识点,顺便写一下自己的体会。
<span style="font-family:KaiTi_GB2312;font-size:18px;">Module UserMoudel Public userTemp As New Model.UsersEntity End Module </span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">Dim uBll As New jifang.BLL.UserBLL Dim users As Model.UsersEntity '接收实体,用于BLL层的方法UserLogin()返回的数据类型,如果没有New就不是实例化 Dim mUser As New Model.UsersEntity ' mUser.UserName = Trim(txtUserName.Text) mUser.PassWord = Trim(txtPassWord.Text) userTemp = mUser MsgBox(userTemp.UserName) '验证实体参数是否传入到模块中userTemp实体中了。 Try users = uBll.SelectUser(mUser) If (users.UserName Is Nothing And users.PassWord Is Nothing) Then lblBox.Text = "用户名或密码输入错误。" Else lblBox.Text = "登入成功!登入用户是:" + users.UserName frmChangePassword.Show() End If Catch ex As Exception MsgBox(ex.Message()) End try </span> 这样修改密码中就可以直接调用模块中的userTemp实体了。
Try users = uBll.SelectUsers(userNameTemp) '调用模块中的公用参数。 If users.PassWord = txtOldPW.Text Then flage = uBll.ChangePW(user) If flage = True Then lblPoint.Text = "密码修改成功" End If Else lblPoint.Text = "旧密码输入错误" txtOldPW.Text = "" Exit Sub End If Catch ex As Exception MsgBox(ex.Message()) End Try 但是我在测试修改密码的窗体的时候突然发现,第一次修改密码可以很正确的进行,但是如果接连两次进行修改密码,就会出现错误。具体什么错误忘记了。在这里为什么第二次进行修改密码的时候会出现错误那?? 意味我们上面的模块中的实体传递的是两个参数。是登入窗体的用户名和密码。所以我们在修改密码是查询的结果就为空。这时就会报错。于是就出现了第二版的代码 模块:这次只传入了用户名。 <span style="font-family:KaiTi_GB2312;font-size:18px;">Module UserMoudel Public userNameTemp As String End Module</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">Private Sub btnOK_Click(sender As Object,e As EventArgs) Handles btnOK.Click Dim uBll As New jifang.BLL.UserBLL Dim users As Model.UsersEntity '接收实体,用于BLL层的方法UserLogin()返回的数据类型,如果没有New就不是实例化 userNameTemp = Trim(txtUserName.Text) '公共参数 MsgBox(userNameTemp) '验证参数是否传入到模块中userNameTemp实体中了。 Try users = uBll.SelectUsers(userNameTemp) If users.PassWord = txtPassWord.Text Then lblBox.Text = "登入成功!登入用户是:" + users.UserName frmChangePassword.Show() Me.Hide() Else lblBox.Text = "用户名或密码输入错误。" End If</span> <span style="font-family:KaiTi_GB2312;font-size:18px;">Catch ex As Exception MsgBox(ex.Message()) End Try End Sub</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">Try users = uBll.SelectUsers(userNameTemp) If users.PassWord = txtOldPW.Text Then flage = uBll.ChangePW(user) If flage = True Then lblPoint.Text = "密码修改成功" End If Else lblPoint.Text = "旧密码输入错误" txtOldPW.Text = "" Exit Sub End If Catch ex As Exception MsgBox(ex.Message()) End Try</span>
①公共模块中的参数,尽量独立,不要把他们绑到一块,不然有时候,在调用的时候,表面看着没有问题,但实际上会有潜在的危险。
??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |