Foxtable(狐表)用户栏目专家坐堂 → 修改口令处窗口报错


  共有2678人关注过本帖树形打印复制链接

主题:修改口令处窗口报错

帅哥哟,离线,有人找我吗?
hopestarxia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
修改口令处窗口报错  发帖心情 Post By:2016/7/24 12:43:00 [只看该作者]

你好大红袍老师,我这个报错还是在上次向您请教育的修改口令的问题处。

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.23.1
错误所在事件:窗口,修改口令,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。
此主题相关图片如下:xhkl.png
按此在新窗口浏览图片
想在原来的贴子说明情况,但是回复中好像不能上传图片。

我最早的问题"
我现在设计的程序是以开发者的身份登录加入了操作员,

然后其他操作员以后工作中设计是可以自行修改自己的口令,在项目中增加了一个"修改口令"的功能按钮,点击该按钮后则出现了图片中的窗口,

操作员直接在新口令后面的方框中(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
    dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2))

msgbox(dr("config") & vbcrlf & MD5Encrypt(str1) & vbcrlf & MD5Encrypt(str2))
    dr.save
    msgbox("修改成功")    
End If”


恢复了一下系统,重装上开发版权,加入代码就发现报错了。

用老师前面的语句也发现要报错,但是检查好像不是我系统改变后环境造成的,

感觉后面是在这段“If dr("config").Contains(MD5Encrypt(str1)) Then

    dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2))

msgbox(dr("config") & vbcrlf & MD5Encrypt(str1) & vbcrlf & MD5Encrypt(str2))
    dr.save
    msgbox("修改成功")    
End If”中运行过程事造成的报错。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/24 14:57:00 [只看该作者]

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 & "'")
If dr Is Nothing Then
    msgbox("没有找到对应的行")
Else
    msgbox(dr("config") & vbcrlf & MD5Encrypt(str1))
   
    If dr("config").Contains(MD5Encrypt(str1)) Then
        dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2))
        msgbox(dr("config") & vbcrlf & MD5Encrypt(str1) & vbcrlf & MD5Encrypt(str2))
        dr.save
        msgbox("修改成功")
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2016/7/24 18:15:00 [只看该作者]

提示成功,但实际上密码并没有修改过来。

用户表是关联到SQL数据库下按帮助建立的user表。

麻烦老师再给看看是什么地方的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
oaok
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1198 积分:7859 威望:0 精华:0 注册:2013/5/17 14:26:00
  发帖心情 Post By:2016/7/24 23:54:00 [只看该作者]

用户已经被屏蔽

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2016/7/25 9:04:00 [只看该作者]

一开始的时候已经定义字段了啊,
Dim str1 As String = e.form.Controls("TextBox1").Text

Dim str2 As String = e.form.Controls("TextBox2").Text




 回到顶部
帅哥哟,离线,有人找我吗?
oaok
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1198 积分:7859 威望:0 精华:0 注册:2013/5/17 14:26:00
  发帖心情 Post By:2016/7/25 9:29:00 [只看该作者]

用户已经被屏蔽

 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2016/7/25 10:07:00 [只看该作者]

 dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2)) 
这儿我还没有理解,看语句是用(str2)去替换(str1)值,也可以说是赋值了的啊。

而USER中CONFIG字段包含了“用户组,用户密码,用户角色三个值。如下示例数据:
Group 财务部 PassWord EmIR5WBjrFGjO7SHZdBWwQ== Type 2 Role 查看本部不编辑

如果那儿用dr("config") =  MD5Encrypt(str2)这句,表中就只有密码转找为MD5Encrypt格式的内容了。
这样系统还是无法读取的呢。

这一句里有多句,用户关联到SQL表后,这一列值的内容太多,还真是头痛,请高手们再帮帮忙指导啊。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/25 10:41:00 [只看该作者]

改改

 

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 & "'")
If dr Is Nothing Then
    msgbox("没有找到对应的行")
Else
    If dr("config").Contains(MD5Encrypt(str1)) Then
        dr("config") = dr("config").Replace(MD5Encrypt(str1), MD5Encrypt(str2))
        dr.save
        msgbox("修改成功")
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2016/7/26 23:25:00 [只看该作者]

谢谢大家的指点,谢谢大红袍老师。


 回到顶部