Foxtable(狐表)用户栏目专家坐堂 → 在学习狐表官方学习及考试写法时 非微信授权登录的情况下 WeChatUsers怎么无法新增用户数据进去呢?是不是只有微信扫码才能新增用户数据呢?


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

主题:在学习狐表官方学习及考试写法时 非微信授权登录的情况下 WeChatUsers怎么无法新增用户数据进去呢?是不是只有微信扫码才能新增用户数据呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
在学习狐表官方学习及考试写法时 非微信授权登录的情况下 WeChatUsers怎么无法新增用户数据进去呢?是不是只有微信扫码才能新增用户数据呢?  发帖心情 Post By:2021/3/21 14:03:00 [只看该作者]

在学习狐表官方学习及考试写法时,非微信授权登录的情况下

图片点击可在新窗口打开查看此主题相关图片如下:12.png
图片点击可在新窗口打开查看
WeChatUsers怎么无法新增用户数据进去呢?是不是只有微信扫码才能新增用户数据呢?
当前还没有使用微信进行测试,所以想后台直接新增用户数据进去  有没有办法呢?

方法一:无法直接保存数据
Dim cmd1 As New SQLCommand
cmd1.C
cmd1.CommandText = "Insert Into WeChatUsers(OpenID,Nickname,Sex,Grade,Password,Token) Values(?,?,?,?,?,?)"
cmd1.Parameters.Add("@OpenID","1234567891")
cmd1.Parameters.Add("@Nickname","黄立望")
cmd1.Parameters.Add("@Sex","1")
cmd1.Parameters.Add("@Grade","1")
cmd1.Parameters.Add("@Password","666")
cmd1.Parameters.Add("@Token","12")
cmd1.ExecuteNonQuery

方法二:直接在项目中新增数据也是如图  

无法进行保存  只有不保存数据才能关闭项目

有没有办法解决呢?


[此贴子已经被作者于2021/3/21 18:08:27编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/21 22:31:00 [只看该作者]

到后台数据库修改表,把“允许NULL值”除了主键全部都勾选上。

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)到后台数据库修改表,把“允许NULL值...  发帖心情 Post By:2021/3/22 0:23:00 [只看该作者]

OK  谢谢老师的指导  已经可以保存了
当前新增了三个用户  运行效果提示如下:
只有1234567890这个id可以成功答题   1234567891  1234567892 两个不能答题

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:33.png
图片点击可在新窗口打开查看

经排查如下【试题表里面有对应1234567891  1234567892的数据】

图片点击可在新窗口打开查看此主题相关图片如下:44.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:55.png
图片点击可在新窗口打开查看
【UsersTestForm】表里面只有1234567890 没有1234567891  1234567892的数据  初步判断 这个楼上图片提示联系客服的原因 

图片点击可在新窗口打开查看此主题相关图片如下:66.png
图片点击可在新窗口打开查看
 老师可以指导下不呢
[此贴子已经被作者于2021/3/22 0:32:51编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 8:41:00 [只看该作者]

自己调试一下NewQuestion函数

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)自己调试一下NewQuestion函数  发帖心情 Post By:2021/3/22 9:39:00 [只看该作者]

经按照老师的指导  做了调试
发现问题的根源:
是用户在登录的时候,无法往WeChatUsersLogin里面写登录信息,main函数是固定了nickname为张三,经在login函数里面添加了vars(“nickname”)变量后  直接添加如下红色代码运行可以往对应的WeChatUsersLogin表里面记录当前用户登录信息。问题得以解决啦!

'Dim openid As String = vars("openid")
'Dim nickname As String = vars("nickname")
'MessageBox.Show(nickname)
'
'If openid > "" Then
    ''Dim dr As DataRow = DataTables("WeChatUsers").Find("OpenID = '" & openid & "'")
    '
    'Dim dtLogon As DataTable = DataTables("WeChatUsersLogin")
    'dr = dtLogon.Find("OpenID='" & openid & "' and Online = 1 and LoginTime > '" & Date.Today & "'")
    'If dr Is Nothing Then
        'dtLogon.ReplaceFor("Online",0,"OpenID='" & openid & "' and Online = 1")
        'dtLogon.RemoveFor("Online = 0")
        'dr = dtLogon.AddNew()
        'dr("OpenID") = openid
        'dr("Nickname") = nickname
        'dr("Online") = True
    'End If
    ''dr("DeveloperID") = devid
    'dr("LoginTime") = Date.Now
    'dr("IP") = e.Request.RemoteEndPoint().Address.ToString()
    'dr.Save
'End If



当前点击全部错题,没有错误的题目出现,是啥回事情呢?

图片点击可在新窗口打开查看此主题相关图片如下:11.gif
图片点击可在新窗口打开查看

[此贴子已经被作者于2021/3/22 9:47:59编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 9:52:00 [只看该作者]

首先不要使用全局变量,通过登录账号查询openid,或者干脆把openid当作登录账号

其次,如果有什么表保存不了,参考2楼的方法处理

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)首先不要使用全局变量,通过登录账号...  发帖心情 Post By:2021/3/22 10:13:00 [只看该作者]

经查是T_UpdateErrorQuestions这个函数中的poenid被指定了  更改了vars("openid")后,再次运行计划任务,当前问题得以解决。

在老师的指导下,目前已经完成了整个试题系统在本地进行测试(微信公众号测试还有待域名备案通过之后方可进行)的思路学习和摸索,当前是采用了全局变量的方式来进行数据的固定传递,在一个服务启动下 多人登录的情况下是会有问题的

按照老师的指导:通过登录名查找openid之后 再直接登录 是不是同步写入cookie数据中,便于系统进行调用。

还有一个弱弱的问题:那就是项目中的exit函数,要怎么直接调用呢

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 10:18:00 [只看该作者]

openid写入cookie数据中使用

exit函数到页面添加一个退出按钮调用

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)openid写入cookie数据中使用exit函数...  发帖心情 Post By:2021/3/22 11:35:00 [只看该作者]

exit函数代码:
Dim e As RequestEventArgs = Args(0)
Dim wb As New weui
Dim dr As DataRow = DataTables("WeChatUsersLogin").Find("[OpenID] = '" & e.Cookies("OpenID") & "' and Online = 1")
If dr IsNot Nothing Then
    dr("Online") = False
    dr.Save
    dr = DataTables("UsersTestForm").Find("[OpenId] = '" & e.Cookies("OpenID") & "' and IsCompleted = 0","TestID desc")
    If dr IsNot Nothing Then
        dr("IsCompleted") = True
        dr("CorrectRate") = dr("CorrectQty") / dr("QuestionQty")
        dr.Save
    End If
End If
e.Appendcookie("openid","")
e.Appendcookie("nickname","")
e.WriteString("<meta http-equiv='refresh' c>") '跳转到登录页
e.WriteString(wb.Build)

begin函数代码:
With wb.AddTabBar("", "tb1", 0)
        .AddPage("page1","我","./Home.png")
        If qt=1 Then
            .AddPage("page2","练习","./Test.png")
            .AddPage("page3","回顾","./Review.png")
        Else
            .AddPage("page2","考试","./Test.png")
        End If
        .AddButton("bt1","退出","./images/cell.png","exit.htm")
    End With


经过测试运行  exit函数能够清除对应的cookie值 也能够进行online在线值的取消   如果这个时候用户后退  可以回到exit之前的页面内容  可以点击查看除了开始答题按钮之外的所有内容记录  
有没有办法让用户注销之后  后退页面都不能正常浏览了呢?
是不是直接加入判断  online=false时  全部不能使用了

[此贴子已经被作者于2021/3/22 11:58:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/22 11:52:00 [只看该作者]

退出时把页面所有cookie都清空,可以看看CheckToken函数

 回到顶部
总数 13 1 2 下一页