以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  "已添加了具有相同键的项"错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133632)

--  作者:yuweijie
--  发布时间:2019/4/17 14:06:00
--  "已添加了具有相同键的项"错误

经测试,下面这段代码在网络信号很差的情况下,用手机打开这个页面的过程中,服务器就会跳出"已添加了具有相同键的项"错误,在信号好时,不会出错,帮忙看下有什么问题

 

 

 

Case "aqsbjcxx.htm"
    Dim sbid As String
    If e.GetValues.ContainsKey("sbid")
        sbid = e.GetValues("sbid")
    End If
   
    Dim dr As DataRow
    If sbid.Contains("MHQ")
        dr = DataTables("灭火器表").SQLFind("编码 = \'" & sbid & "\'")
    Else If sbid.Contains("FDMZ")
        dr = DataTables("防毒面罩表").SQLFind("编码 = \'" & sbid & "\'")
    Else
        dr = DataTables("其他设备表").SQLFind("编码 = \'" & sbid & "\'")
    End If
   
    If dr IsNot Nothing Then
        wb.AddForm("","formaqsb","aqsbjcxx.htm")\'
        With wb.AddInputGroup("formaqsb","ipg1","设备信息")
            With .AddInput("bianm","编码:","text")
                .Readonly = True
                .value = dr("编码")
            End With
            With .AddInput("mingc","名称:","text")
                .Readonly = True
                If sbid.Contains("MHQ")
                    .Value = dr("名称")
                Else If sbid.Contains("FDMZ")
                    .Value = dr("设备名称")
                Else
                    .Value = dr("设备名称")
                End If
               
               
            End With
            With .AddInput("xingh","型号:","text")
                .Readonly = True
                .Value = dr("型号")
            End With
            With .AddInput("did","地点:","text")
                .Readonly = True
                .Value = dr("放置地点")
            End With
            With .AddInput("guanly","管理员:","text")
                .Readonly =True
                If sbid.Contains("MHQ")
                .Value = dr("管理员")
                Else If sbid.Contains("FDMZ")
                .Value = dr("责任人")
                Else
                .Value = dr("责任人")
                End If

            End With
        End With
       
        With wb.AddTable("formaqsb","检查信息")
            .CreateFromDataTable(DataTables("灭火器检查表"),False,"编号 = \'" & sbid & "\'","检查日期 desc","检查日期","检查结果","检查人","备注")
        End With
    Else
        With wb.AddMsgPage("","msgpage1","设备已下架", "") \'生成成功提示页
        End With
    End If
   
    With wb.AddInputGroup("formaqsb","ipg2","图片信息")
        With .AddUploader("up11","",True)
            .AllowAdd = False \'关闭文件上传功能
            \'AddImage的第一个参数为缩略图,第二个参数为原图
            \'Dim drs1 As DataRow = DataTables("灭火器检查表") .Find("编号 = \'" & sbid & "\'","检查日期 Desc")
            For Each drs As DataRow In DataTables("灭火器检查表").Select("编号 = \'" & sbid & "\'","检查日期 Desc")
                .AddImage("./Attachments/" & drs("指针图片"),"./Attachments/" & drs("指针图片"))
            Next
        End With
    End With
    e.WriteString(wb.Build)


--  作者:有点甜
--  发布时间:2019/4/17 14:27:00
--  

比如,这种情况,会报错,添加的图片名称重复的时候,就会报错。

 

Select Case e.Path
    Case "test.htm", ""
        Dim wb As New weui
        wb.AddForm("","form1","test.htm")
        With wb.AddInputGroup("form1","ipg1","客户资料")
            .AddInput("姓名","姓名","text").value = "舒淇"
            .AddInput("地点","地点","text").Value = "蒙古草原"
            .AddInput("日期","日期","date").value = #10/12/2012#
            With .AddUploader("up1","",True)
                .AllowAdd = False \'关闭文件上传功能
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")
                .AddImage("./images/001.jpg")

            End With
        End With
        e.WriteString(wb.Build) \'生成网页
End Select


--  作者:yuweijie
--  发布时间:2019/4/17 14:30:00
--  

那怎么改可以解决这个问题呢?我这个是挂在局域网上的,在 wifi信号差的地方就会出错。

[此贴子已经被作者于2019/4/17 14:32:48编辑过]

--  作者:有点甜
--  发布时间:2019/4/17 15:34:00
--  

先确定是否这个问题,加入红色代码,看弹出什么后报错,弹出的文字是否重复。

 

            For Each drs As DataRow In DataTables("灭火器检查表").Select("编号 = \'" & sbid & "\'","检查日期 Desc")

msgbox("./Attachments/" & drs("指针图片"))
                .AddImage("./Attachments/" & drs("指针图片"),"./Attachments/" & drs("指针图片"))
            Next