Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
将帮助中的案例加到项目中,共四个用户组,发现其他三个用户组都可以修改密码,一个用户组(填报)修改密码出现“更改用户失败!”的提示,不知问题出在哪里?请各位老师帮助看看。谢谢!!
下载信息 [文件大小: 下载次数: ] | |
![]() |
密码是123或888
刚才又试了一下,用户名是汉字、字母或数字,修改密码都可以成功,但是,如果加上横杠,修改密码就提示“更改用户失败!”,看来代码可能不兼容用户名带横杠的实例,各位老师是否可以看看,如何调整代码,使代码可兼容带横杠的用户名。谢谢!!
代码如下:
Dim UserName As String = e.Form.Controls("UserName").Value
Dim UserGroup As String = e.Form.Controls("UserGroup").Value
Dim PassWord As String = e.Form.Controls("PassWord").Value
Dim OldUserName As String
Dim cmd As New SQLCommand
Dim Parts() As String = e.Form.Text.Split("-"c)
OldUserName = Parts(Parts.Length -1)
cmd.C
If UserName = "" OrElse UserGroup = "" Then
Messagebox.show("请输入用户名和用户分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
End If
cmd.CommandText = "Update {Users} Set [Name] = '" & UserName & "',[Group] = '" & UserGroup
cmd.CommandText = cmd.CommandText & "', [Password] = '" & Password & "' Where [Name]= '" & OldUserName & "'"
If cmd.ExecuteNonQuery = 1 Then '返回1表示更改成功
If Forms("用户管理").Opened Then
With Forms("用户管理").Controls("ListBox1")
.Items(.SelectedIndex) = UserName
End With
End If
e.Form.Close
Else
Messagebox.show("更改用户失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
显示一下合成的SQL语句,你就知道原因了:
cmd.CommandText = "Update {Users} Set [Name] = '" & UserName & "',[Group] = '" & UserGroup
cmd.CommandText = cmd.CommandText & "', [Password] = '" & Password & "' Where [Name]= '" & OldUserName & "'"
MessageBox.show(cmd.commandtext)
你前面的代码:
Dim Parts() As String = e.Form.Text.Split("-"c)
OldUserName = Parts(Parts.Length -1)
当用户名为01-1的时候,OldUserName = 1,使得你合成的语句的条件为:
Where [Name] = ‘1’
可是表中只有名为01-1的用户,并没有名为1的用户,所以出错是必然的。
我不明白你为什么要这么写:
Dim Parts() As String = e.Form.Text.Split("-"c)
OldUserName = Parts(Parts.Length -1)
下载信息 [文件大小: 下载次数: ] | |
![]() |
谢谢狐爸老师,问题解决了,十分感谢狐爸老师的热情帮助,再次谢谢!!