Foxtable(狐表)用户栏目专家坐堂 → update 更新出现没有修改的值时空值的情况 何解


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

主题:update 更新出现没有修改的值时空值的情况 何解

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
update 更新出现没有修改的值时空值的情况 何解  发帖心情 Post By:2021/4/9 10:55:00 [只看该作者]

出现没有修改的值 提交更新后   在后台该值为空
比如所在部门为政治部  如果不修改  只修改密码后   后台密码更新成功  所在部门为空值  
有没有办法补正没有修改过的数据  不做更新

Dim e As RequestEventArgs = args(0)
Dim wb As New weui
Dim vals As String
Dim cmd111 As New S QLCommand
cmd111.C '记得设置数据源名称
cmd111.CommandText = "Sel ect * From {用户表} "
Dim dt As DataTable = cmd111.ExecuteReader
Dim dr As DataRow=dt.Find("单位名称='" & e.Cookies("单位名称") & "'and 姓名='" & e.Cookies("姓名") & "'")
If Functions.Execute("yanzheng",e) = 1 '获取验证不能使用异步函数,必须等待并获取验证结果
    If e.PostValues.Count = 0 Then
        wb.AddPageTitle("","ph1","账户信息修改"," ")
        wb.AddForm("","form1","password.htm")
        wb.AddTopTips("","toptip1","请输入单位名称和部门名称!")
        With wb.AddInputGroup("form1","ipg1","内容信息")
            If dr IsNot Nothing Then
                .AddInput("单位名称","单位名称*","text").Placeholder =dr("单位名称")
                .AddInput("所在部门","所在部门*","text").Placeholder =dr("所在部门")
                .AddInput("职务","职务*","text").Placeholder =dr("职务")
                .AddInput("姓名","姓名*","text").Placeholder =dr("姓名")
                .AddInput("电话","电话*","text").Placeholder =dr("电话")
                .AddInput("邮件","邮件*","text").Placeholder =dr("邮件")
                .AddInput("密码","密码*","text").Placeholder =dr("密码")
            End If
        End With
        With wb.AddButtonGroup("form1","btg1",False)
            .Add("btn1", "确定更新", "submit")
            .Add("btn2", "取消更新", "submit").FormAction = "default.htm"
        End With
        e.WriteString(wb.Build) '生成网页
    Else  
        Dim cmd1 As New SQ LCommand
        cmd1.C     
        cmd1.CommandText = "UPD ATE 用户表 S ET 所在部门=?,职务=?,电话=?,邮件=?,密码=? WHERE 单位名称=? and 姓名=? "
        cmd1.Parameters.Add("@所在部门", e.PostValues("所在部门"))
        cmd1.Parameters.Add("@职务", e.PostValues("职务"))
        cmd1.Parameters.Add("@电话", e.PostValues("电话"))
        cmd1.Parameters.Add("@邮件", e.PostValues("邮件"))
        cmd1.Parameters.Add("@密码", e.PostValues("密码"))
        cmd1.Parameters.Add("@单位名称", e.Cookies("单位名称"))
        cmd1.Parameters.Add("@姓名", e.Cookies("姓名"))
        cmd1.ExecuteNonQuery
        DataTables("用户表").LoadFilter = ""
        DataTables("用户表").Load()
        With wb.AddMsgPage("","msgpage","更新用户信息成功", "感谢支持,请点【登录系统】按钮登录使用,默认密码666666") '生成成功提示页
            .AddButton("btn11","登录系统","default.htm")
        End With
        e.WriteString(wb.Build)
    End If
End If
[此贴子已经被作者于2021/4/9 10:55:54编辑过]

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


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

Dim cmd1 As New SQ LCommand
        cmd1.C     
dim sql as string = "UPD ATE 用户表 S ET "
if e.PostValues.ContainsKey("所在部门")
sql = sql & "所在部门=?,"
cmd1.Parameters.Add("@所在部门", e.PostValues("所在部门"))
end if
if e.PostValues.ContainsKey("职务")
sql = sql & "职务=?,"
cmd1.Parameters.Add("@职务", e.PostValues("职务"))
end if
……
sql = sql.trim(",") & " WHERE 单位名称=? and 姓名=? "
cmd1.Parameters.Add("@单位名称", e.Cookies("单位名称"))
cmd1.Parameters.Add("@姓名", e.Cookies("姓名"))
cmd1.ExecuteNonQuery


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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)Dim cmd1 As New SQ LCommand  ...  发帖心情 Post By:2021/4/9 11:20:00 [只看该作者]

Dim cmd1 As New SQLCommand
cmd1.C
Dim sql As String ="UPDA TE 用户表 S ET"

If e.PostValues.ContainsKey("所在部门")
    sql = sql & "所在部门=?,"
    cmd1.Parameters.Add("@所在部门", e.PostValues("所在部门"))
End If
If e.PostValues.ContainsKey("职务")
    sql = sql & "职务=?,"
    cmd1.Parameters.Add("@职务", e.PostValues("职务"))
End If
If e.PostValues.ContainsKey("电话")
    sql = sql & "电话=?,"
    cmd1.Parameters.Add("@电话", e.PostValues("电话"))
End If
If e.PostValues.ContainsKey("邮件")
    sql = sql & "邮件=?,"
    cmd1.Parameters.Add("@邮件", e.PostValues("邮件"))
End If
If e.PostValues.ContainsKey("密码")
    sql = sql & "密码=?,"
    cmd1.Parameters.Add("@密码", e.PostValues("密码"))
End If
sql = sql.trim(",") & " WHERE 单位名称=? and 姓名=? "

cmd1.CommandText = sql
cmd1.Parameters.Add("@单位名称", e.Cookies("单位名称"))
cmd1.Parameters.Add("@姓名", e.Cookies("姓名"))
cmd1.ExecuteNonQuery

 回到顶部