以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 找不到行,提示未将对象引用设置到对象的实例 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99405) |
-- 作者:zhangjian222200 -- 发布时间:2017/4/18 21:51:00 -- 找不到行,提示未将对象引用设置到对象的实例 \'筛选验证 Dim e As RequestEventArgs = args(0) \'验证页面(注册第2页) Select Case e.Path Case "p_tayaoqingshaixyz.htm" Dim wb As New weui Dim drshouj As String = e.Cookies("isj") \'从cookie取用户手机 Dim dr As DataRow If drshouj <> "" Then dr = DataTables("会员资料").sqlFind("[会员编号] = \'" & drshouj & "\'") msgbox(drshouj) \'这里执行了,显示了手机号18961309989 msgbox("我的手机号:" & dr("手机")) ’这里没有执行,提示未将对象引用设置到对象的实例。 ’“会员资料”表、“会员编号”列都是存在的,18961309989行存在,咋回事?看了很久 ’都没有找到原因,麻烦看看 Else msgbox("您尚未登录!") End If Dim qis As String = e.PostValues("isr1") \'验证起始日期 \'测试代码:msgbox(e.PostValues("isr")) Dim qisrq As Date \'定义起始日期(转换后可用的内容) Date.TryParse(qis, qisrq) Dim qis_y As Integer = qisrq.Year Dim qis_m As Integer = qisrq.Month Dim qis_d As Integer = qisrq.Day Dim jiez As String = e.PostValues("isr2") \'验证截至日期 Dim jiezrq As Date \'定义起始日期(转换后可用的内容) Date.TryParse(jiez, jiezrq) Dim jiez_y As Integer = jiezrq.Year Dim jiez_m As Integer = jiezrq.Month Dim jiez_d As Integer = jiezrq.Day Dim bjy As Integer = jiez_y - qis_y \'比较年 Dim bjm As Integer = jiez_m - qis_m \'比较月 Dim bjd As Integer = jiez_d - qis_d \'比较日 If qis <> "" AndAlso jiez <> "" Then \'当2个表格都填写了的时候(比较年份) If bjy < 0 Then e.WriteString("截止日期必须大于起始日期!") Return "" End If End If If qis <> "" AndAlso jiez <> "" Then \'当2个表格都填写了的时候(比较月份) If bjy = 0 AndAlso bjm < 0 Then e.WriteString("截止日期必须大于起始日期!") Return "" End If End If If qis <> "" AndAlso jiez <> "" Then \'当2个表格都填写了的时候(比较日期-天) If bjy = 0 AndAlso bjm = 0 AndAlso bjd < 0 Then e.WriteString("截止日期必须大于起始日期!") Return "" End If End If msgbox(33) If dr IsNot Nothing Then dr("TA邀请_起始日期") = e.PostValues("isr1") \'保存起始日期 \'测试代码:msgbox(e.PostValues("isr")) dr("TA邀请_截止日期") = e.PostValues("isr2") \'保存截止日期 dr.save() msgbox(44) Else msgbox("保存失败!请登录后,再使用会员中心-TA邀请筛选功能!") ’执行了这里 End If \'With wb.AddMsgPage("","msgpage","注册成功", "本地自助服务,为您婚恋交友之路保驾护航") \'生成成功提示页 \'.AddButton("btn1","完善资料","/fillout.htm") \'End With msgbox(55) wb.InsertHTML("<meta http-equiv=\'Refresh\' c>") \'那么直接跳转到会员中心,他邀请页面 e.WriteString(wb.Build) \'生成网页 End Select
|
-- 作者:wyz20130512 -- 发布时间:2017/4/18 21:56:00 -- 这种报错,一般是你引用的对象为空值。 对SQLFind()方法找到的行,要进行一个判断 If dr IsNot Nothing Then End If
[此贴子已经被作者于2017/4/18 21:59:29编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/19 8:42:00 -- 1、你使用的是sqlFind方法,你新增的行,如果没有save的话,是查不到其值的。
2、有可能你的查询条件不正确,确实是没有符合的行(比如多了空格之类的、特殊字符之类的)
3、你对dr要进行判断,找到或者没找到。 |
-- 作者:zhangjian222200 -- 发布时间:2017/4/19 10:01:00 -- 测试账户:18961305239 密码:222222 登录网址:http://127.0.0.1/login.htm 弄了很久还是没搞定,还请瞧瞧 sqlfind使用很好的:登录后自动跳转到首页。在首页底部,任意点击按钮“查看TA的资料”,将进入details.htm,这个details.htm就使用了sqlfind,使用很好 sqlfind使用不成功:但是如果在首页/index.htm,点击页面底部“筛选设置”,进入/index_shaix.htm,填入内容,然后执行验证和保存是在:/index_shaixyz.htm,这个页面的sqlfind用法一样,找不到手机所在行 [此贴子已经被作者于2017/4/19 10:02:23编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/19 10:41:00 -- 回复4楼,测试没问题。请认认真真测试。
而且不要每次都sqlfind对应的数据。你登录只有,应该使用cookie保存用户的所有信息的才对。 |
-- 作者:zhangjian222200 -- 发布时间:2017/4/19 10:57:00 -- 回楼上,你测试,下面代码中msgbox(44),执行了吗? Dim e As RequestEventArgs = args(0) \'首页筛选验证页面 Select Case e.Path Case "index_shaixyz.htm" Dim wb As New weui Dim drshouj As String = e.Cookies("isj") \'从cookie取用户手机 Dim dr As DataRow = DataTables("会员资料").sqlFind("会员编号 = \'" & drshouj & "\'") msgbox(11) Dim zuixnl As String = e.PostValues("zxnl") \'验证最小年龄 \'测试代码:msgbox(e.PostValues("isr")) Dim zuidnl As String = e.PostValues("zdnl") \'验证最大年龄 If zuidnl < zuixnl Then msgbox(22) e.WriteString("最大年龄必须大于最小年龄!") Return "" End If msgbox(33) If dr IsNot Nothing Then dr("首页筛选_最小年龄") = e.PostValues("zxnl") \'验证最小年龄 \'测试代码:msgbox(e.PostValues("isr")) dr("首页筛选_最大年龄") = e.PostValues("zdnl") \'验证最大年龄 dr("首页筛选_TA的学历") = e.PostValues("tdxl") \'验证TA的学历 dr("首页筛选_婚姻状况") = e.PostValues("hyzk") \'验证婚姻状况 dr.save() msgbox(44) Else msgbox("保存失败!请登录后,再使用首页筛选功能!") End If \'With wb.AddMsgPage("","msgpage","注册成功", "本地自助服务,为您婚恋交友之路保驾护航") \'生成成功提示页 \'.AddButton("btn1","完善资料","/fillout.htm") \'End With msgbox(55) wb.InsertHTML("<meta http-equiv=\'Refresh\' c>") \'那么直接跳转到登录页面 e.WriteString(wb.Build) \'生成网页 End Select
|
-- 作者:有点色 -- 发布时间:2017/4/19 11:59:00 -- 你查询的是 会员编号,你的会员编号存放的不是手机号啊。改成
Dim dr As DataRow = DataTables("会员资料").sqlFind("手机 = \'" & drshouj & "\'") |