Foxtable(狐表)用户栏目专家坐堂 → 自动增加行问题


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

主题:自动增加行问题

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
自动增加行问题  发帖心情 Post By:2024/8/5 14:58:00 [只看该作者]

Dim openid As String

If e.Request.Headers("User-Agent").ToLower.Contains("micromessenger") Then '如果是微信登录
    If e.Cookies.ContainsKey("openid1") Then
        openid = e.Cookies("openid1")
    Else
        openid = Functions.Execute("getopenid", e) 
        wb.AppendCookie("openid1", openid) '向cookie中写入openid  
        Dim dropenid As DataRow = DataTables("登录用户").sqlfind("openid='" & openid & "'")
        If dropenid Is Nothing Then
            Dim dropen As DataRow = DataTables("登录用户").SQLAddNew()
            dropen("openid") = openid
            
            dropen("新增时间") = Date.now()
            dropen.Save() 
        End If
    End If
End If
。。。。
。。。。
。。。。
这段代码放在某个函数开头,实现功能是,当打开函数时,首先判断cookies中是否包含openid1,如果有直接赋值给openid变量,如果没有则生成openid,然后判断这个openid在表中是否存在,如果不存在则增加一行并写入。
现在问题是总会在表中增加了一些空行,空行中openid列是空,单新增时间有值,请问我这个写法哪里不周全?

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


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

改为

Dim dropen As DataRow = DataTables("登录用户").AddNew()

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


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

如果是异步,改为使用SQLcommand插入数据

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7598 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2024/8/5 16:34:00 [只看该作者]

 有没有可能即使容纳了e.Cookies.ContainsKey("openid1"),但是e.cookies("openid1")的值是空,排除直接给e.cookies("openid1")赋空值。

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


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

如果是空的,说下面函数没有返回openid值

openid = Functions.Execute("getopenid", e) 

 回到顶部