以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]获取图片问题count  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=116678)

--  作者:188802386
--  发布时间:2018/3/29 10:57:00
--  [求助]获取图片问题count
之前原来的代码
Dim idx = 1
For Each dl As object In web.Document.GetElementsByTagName("img")
    Dim url =  dl.GetAttribute("src")
    If url > "" Then
        Dim c As String = "图片" & idx
        If Tables("house").Cols.Contains(c) Then
            dr(c) = url
        End If
        idx += 1
    End If
Next
是没有问题的,但升级后出现
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.3.1
错误所在事件:窗口,房源,Button5,Click
详细错误信息:
索引和计数必须引用该字符串内的位置。
参数名: count
错误提示,但是用下面的代码测试起又没有问题
For Each dl As object In web.Document.GetElementsByTagName("img")
    Dim url =  dl.GetAttribute("src")
    If url > "" Then
msgbox(url)
    End If
Next
请问有问题是出在那呢

--  作者:有点甜
--  发布时间:2018/3/29 11:12:00
--  

索引和计数必须引用该字符串内的位】应该是你datacolchanged事件有影响的代码,你注释掉那个事件的代码,再测试。


--  作者:188802386
--  发布时间:2018/3/29 11:55:00
--  
以下代码为原来的,之前能同时获取基础数据和图片数据,但是现在出现这个count问题,但是用以下代码分别获取基础数据或图片数据 有能正常获取,不知道问题出在那,楼上datacolchanged事件在执行以下代码时是没有触发的。
    Dim txb1 As String = "http://ia.com/house/view?id=" & e.Form.Controls("TextBox5").text
    Dim wz As String = "FYID"
    Dim te As String = "tel"
    Dim dr As Row = Tables("house").addnew
    dr(wz) = txb1
    dr(te) = e.Form.Controls("TextBox3").text
    
    \'获取基础数据
    Dim txb As WinForm.TextBox = e.Form.Controls("TextBox6")
    Dim web As new windows.forms.webbrowser
    web.ScriptErrorsSuppressed = True
    web.Navigate(txb.Text)
    Do Until web.ReadyState = 4
        Application.DoEvents
    Loop
    For Each dl As object In web.Document.GetElementsByTagName("DIV")
        If dl.GetAttribute("classname") = "col-lg-10" Then
            Dim dll = dl.Innertext
            If dll > "" Then
                Dim Parts() As String = dll.Split(vbcrlf)
                dr("房源ID") = (Parts(0).Remove(0,5))
                dr("房源编号") = (Parts(2).Remove(0,6))
                \'.......
            End If
        End If
    Next
\'获取图片数据
    Dim idx = 1
    For Each dl As object In web.Document.GetElementsByTagName("img")
        Dim url =  dl.GetAttribute("src")
        If url > "" Then
            Dim c As String = "图片" & idx
            If Tables("house").Cols.Contains(c) Then
                dr(c) = url
            End If
            idx += 1
        End If
    Next
    web.Dispose()
    GC.Collect()

--  作者:188802386
--  发布时间:2018/3/29 12:12:00
--  
问题已解决,是网页改版了 获取数据溢出导致