以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 修改口令处窗口报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87989) |
-- 作者:hopestarxia -- 发布时间:2016/7/24 12:43:00 -- 修改口令处窗口报错 你好大红袍老师,我这个报错还是在上次向您请教育的修改口令的问题处。 .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2016.7.23.1 错误所在事件:窗口,修改口令,Button1,Click 详细错误信息: 想在原来的贴子说明情况,但是回复中好像不能上传图片。 我最早的问题" 我现在设计的程序是以开发者的身份登录加入了操作员, 然后其他操作员以后工作中设计是可以自行修改自己的口令,在项目中增加了一个"修改口令"的功能按钮,点击该按钮后则出现了图片中的窗口, 操作员直接在新口令后面的方框中(TextBox1)输入新的口令,然后点击下方的确认(Button1)按钮,则可实现了该操作员自己口令的修改. 保存在关联的SQL表(USER)中还是以加密类型储存." 大红袍老师指点修正后最后的语句为:“ “Dim str1 As String = e.form.Controls("TextBox1").Text Dim str2 As String = e.form.Controls("TextBox2").Text Dim dr As DataRow = DataTables("user").SqlFind("name = \'" & user.name & "\'") msgbox(dr("config") & vbcrlf & MD5Encrypt(str1)) If dr("config").Contains(MD5Encrypt(str1)) Then msgbox(dr("config") & vbcrlf & MD5Encrypt(str1) & vbcrlf & MD5Encrypt(str2)) 恢复了一下系统,重装上开发版权,加入代码就发现报错了。 用老师前面的语句也发现要报错,但是检查好像不是我系统改变后环境造成的, 感觉后面是在这段“If dr("config").Contains(MD5Encrypt(str1)) Then dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2)) msgbox(dr("config") & vbcrlf & MD5Encrypt(str1) & vbcrlf & MD5Encrypt(str2)) |
-- 作者:大红袍 -- 发布时间:2016/7/24 14:57:00 -- Dim str1 As String = e.form.Controls("TextBox1").Text Dim dr As DataRow = DataTables("user").SqlFind("name = \'" & user.name & "\'") |
-- 作者:hopestarxia -- 发布时间:2016/7/24 18:15:00 -- 提示成功,但实际上密码并没有修改过来。 用户表是关联到SQL数据库下按帮助建立的user表。
麻烦老师再给看看是什么地方的问题。 |
-- 作者:hopestarxia -- 发布时间:2016/7/25 9:04:00 -- 一开始的时候已经定义字段了啊, Dim str1 As String = e.form.Controls("TextBox1").Text Dim str2 As String = e.form.Controls("TextBox2").Text |
-- 作者:hopestarxia -- 发布时间:2016/7/25 10:07:00 -- dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2)) 这儿我还没有理解,看语句是用(str2)去替换(str1)值,也可以说是赋值了的啊。 而USER中CONFIG字段包含了“用户组,用户密码,用户角色三个值。如下示例数据: Group财务部PassWordEmIR5WBjrFGjO7SHZdBWwQ==Type2Role查看本部不编辑 如果那儿用dr("config") = MD5Encrypt(str2)这句,表中就只有密码转找为MD5Encrypt格式的内容了。 这样系统还是无法读取的呢。 这一句里有多句,用户关联到SQL表后,这一列值的内容太多,还真是头痛,请高手们再帮帮忙指导啊。
|
-- 作者:大红袍 -- 发布时间:2016/7/25 10:41:00 -- 改改
Dim str1 As String = e.form.Controls("TextBox1").Text Dim dr As DataRow = DataTables("user").SqlFind("name = \'" & user.name & "\'") |
-- 作者:hopestarxia -- 发布时间:2016/7/26 23:25:00 -- 谢谢大家的指点,谢谢大红袍老师。 |