2个问题
1、
sqladdnew返回的行只能保存一次,如果需再次修改,或者取值,需要重新查询获取这一行数据才能重新修改。……
pr("联系电话") =dr("电话")
pr("班级")=dr("班级")
pr.save() '这里保存了
pr("学校")=e.Cookies("userdw") ‘这里再赋值就不行的,后面再使用If pr("审核锁定")=True也不行的’
……
把保存的代码pr.save() 放到最后,确保保存后不再有其它代码使用到这个pr
2、下面这种方式返回的dr也没有判断,如果没有这个身份证的数据,这个就会出错的
dr =DataTables("用户").sqlfind("身份证号 = '" & e.Cookies("username") & "'")
if dr isnot nothing '没有这句判断,也容易出错
最后如果需要使用新增行的_identify,建议这样使用
dr =DataTables("用户").sqlfind("身份证号 = '" & e.Cookies("username") & "'")
If dr IsNot Nothing Then
pr = DataTables("学生库").sqlfind("身份证号 = '" & e.Cookies("username") & "'")
If pr Is Nothing Then
pr = DataTables("学生库").sqladdNew()
End If
pr("身份证号")= dr("身份证号")
pr("姓名")=dr("姓名")
pr("联系电话") =dr("电话")
pr("班级")=dr("班级")
pr("学校")=e.Cookies("userdw")
pr.save()
pr = DataTables("学生库").sqlfind("身份证号 = '" & e.Cookies("username") & "'") ‘重新查询这一行的数据供后面使用
If pr Is Nothing Then ‘理论上前面保存了这里查询这个身份证号码的数据应该是有的,不需要做这个判断也可以,但是仍然有可能会出现没有的情况的,比如保存失败,或者并发冲突等等,就是百万分之一的可能,也够头疼一阵子的,所以严谨的写法就应该加上判断
'这里添加出错返回的代码,
return
End If
wb.appendcookie("myid",pr("_identify"))
……
End If