以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请帮修改代码? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123630) |
-- 作者:wjhjhj -- 发布时间:2018/8/19 22:15:00 -- 请帮修改代码? 在自动义用户系统登录设计中,在“用户管理”窗口的AfterLoad事件中,代码如下: Dim lst As WinForm.ListBox = e.Form.Controls("ListBox1") 只能提取user表中Name列不重复的用户,相同用户只提取了一个,要提取所有Name列的用户(相同用户),代码怎样修改,请指教。谢谢! |
-- 作者:有点蓝 -- 发布时间:2018/8/19 22:21:00 -- 你的逻辑本身就有问题,登录用户肯定是不允许有同名的 |
-- 作者:wjhjhj -- 发布时间:2018/8/19 22:27:00 -- 因姓名有相同的,所以增加了“身份证”列来区别。但发现修改用户时,“用户管理”窗口,姓名相同只能显示一个。请帮修改一下代码。谢谢! [此贴子已经被作者于2018/8/19 22:28:21编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/8/19 22:39:00 -- 同名建议使用工号,或者部门+姓名(类似:销售部.张三),或者张三2、张三3这种。不建议把身份证号码放到登录窗口公开谁都知道 如果一定要用,也应该依然是显示一个,然后把同名下的不同身份证列出来供选择,就是要选2次。 同名列2个出来基本没有意义,逻辑本身就是错的
|
-- 作者:wjhjhj -- 发布时间:2018/8/19 22:52:00 -- 是这样的,但在“用户管理”窗口中,“更改用户”时,无法选择未显示的用户(重复姓名)进行修改。请指教? |
-- 作者:有点蓝 -- 发布时间:2018/8/19 23:06:00 -- 不能有同名的登录用户。 |
-- 作者:wjhjhj -- 发布时间:2018/8/22 17:27:00 -- 根据自定义用户二修改用户(UsrName)为姓名-身份证(UserNameCard),代码事件如下: \'自定义用户系统,"更改用户"窗口AfterLoad事件。 Dim UserNameCard As String Dim UserGroup As String Dim UserRoles As String Dim PassWord As String Dim dr As DataRow If Forms("用户管理").Opened Then \'正常打开 UserNameCard = Forms("用户管理").Controls("ListBox1").SelectedItem Else UserNameCard = _UserNameCard \'_UserNameCard为全局变量,用于保存当前用户名 e.Form.Controls("UserNameCard").Enabled = False e.Form.Controls("UserGroup").Enabled = False e.Form.Controls("UserRoles").Enabled = False End If e.Form.Text = e.Form.Text & "-" & UserNameCard dr = _UserTable.SQLFind("[姓名身份证] = \'" & UserNameCard & "\'") If dr IsNot Nothing Then e.Form.Controls("UserNameCard").Value = UserNameCard e.Form.Controls("UserGroup").Value = dr("Group") e.Form.Controls("UserRoles").Value = dr("Role") e.Form.Controls("PassWord").Value = DecryptText(dr("PassWord"),"wjh","jyj") Else MessageBox.Show("用户不存在或者已经被删除!","提示",MessageBoxButtons.OK) e.Form.Close() End If \'自定义用户系统,"更改用户"窗口的确定按钮Click事件。 Dim UserNameCard As String = e.Form.Controls("UserNameCard").Value Dim UserGroup As String = e.Form.Controls("UserGroup").Value Dim UserRoles As String = e.Form.Controls("UserRoles").Value Dim PassWord As String = e.Form.Controls("PassWord").Value Dim OldUserNameCard As String Dim Parts() As String = e.Form.Text.Split("-"c) OldUserNameCard = Parts(Parts.Length -1) If UserNameCard = "" OrElse UserGroup = "" Then Messagebox.show("请输入用户名和用户分组!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) Return End If Dim dr As DataRow = _UserTable.SQLFind("[姓名身份证]= \'" & OldUserNameCard & "\'") If dr IsNot Nothing Then dr("姓名身份证") = UserNameCard dr("Group") = UserGroup dr("Role") = UserRoles dr("Password") = EncryptText(PassWord,"wjh","jyj") dr.Save() If Forms("用户管理").Opened Then With Forms("用户管理").Controls("ListBox1") .Items(.SelectedIndex) = UserNameCard End With End If e.Form.Close Else Messagebox.show("更改用户失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) End If 运行结果:修改用户信息后,点击“确定”按钮,提示"更改用户失败!",请帮修改一下代码,谢谢! [此贴子已经被作者于2018/8/22 17:28:33编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/8/22 17:35:00 -- msgbox("[姓名身份证]= \'" & OldUserNameCard & "\'") 上面代码显示什么内容?数据库有没有对应的记录?
|
-- 作者:wjhjhj -- 发布时间:2018/8/22 17:58:00 -- 显示是:[姓名身份证]= ‘1’ |
-- 作者:有点蓝 -- 发布时间:2018/8/22 20:05:00 -- 数据库有[姓名身份证]= ‘1’的记录吗? |