Foxtable(狐表)用户栏目专家坐堂 → [求助]代码运行错误


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

主题:[求助]代码运行错误

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]代码运行错误  发帖心情 Post By:2021/2/7 10:45:00 [只看该作者]

代码运行错误,如何修改,请各位老师指教,谢谢!!



DataTables("表C").DataRows.Clear()
For i As Integer = 1 To 10
    Dim web As New System.Windows.Forms.WebBrowser()
    web.Navigate("https://s.askci.com/stock/0-0-0/" & i & "/")
    web.ScriptErrorsSuppressed = True
    Do Until web.ReadyState = 4 AndAlso web.Document.GetElementsByTagName("table").count > 0
        Application.DoEvents
    Loop
    Dim tb = web.Document.GetElementsByTagName("table")
    Dim trs = tb(0).GetElementsByTagName("tr")   '根据标签得到数据集合
    For i1 As Integer = 1 To trs.count-1
        Dim r As Row = Tables("表C").AddNew
        Dim tds = trs(i1).GetElementsByTagName("td")
        For j As Integer = 0 To tds.count-1
            r("序号") = tds(0).innerText
            r("股piao代码") = tds(1).innerText
            r("股piao名称") = tds(2).innerText
            r("公司全称") = tds(3).innerText
            r("上市日期") = tds(4).innerText
            r("招股书") = tds(5).innerText
            r("公司财报") = tds(6).innerText
            r("行业分类") = tds(7).innerText
            r("主营业务") = tds(8).innerText
        Next
        web.Dispose
        r.Save()
    Next
Next



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






 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

    Dim tb = web.Document.GetElementsByTagName("table")
if tb.trs.count = 0 then continue for
    Dim trs = tb(0).GetElementsByTagName("tr")   '根据标签得到数据集合
    For i1 As Integer = 1 To trs.count-1
        Dim r As Row = Tables("表C").AddNew
        Dim tds = trs(i1).GetElementsByTagName("td")
        ‘去掉For j As Integer = 0 To tds.count-1
            r("序号") = tds(0).innerText
            r("股piao代码") = tds(1).innerText
            r("股piao名称") = tds(2).innerText
            r("公司全称") = tds(3).innerText
            r("上市日期") = tds(4).innerText
            r("招股书") = tds(5).innerText
            r("公司财报") = tds(6).innerText
            r("行业分类") = tds(7).innerText
            r("主营业务") = tds(8).innerText
        Next
        web.Dispose
        r.Save()

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2021/2/7 11:10:00 [只看该作者]

加了标记的代码,运行出错。


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



DataTables("表C").DataRows.Clear()
For i As Integer = 1 To 10
    Dim web As New System.Windows.Forms.WebBrowser()
    web.Navigate("https://s.askci.com/stock/0-0-0/" & i & "/")
    web.ScriptErrorsSuppressed = True
    Do Until web.ReadyState = 4 AndAlso web.Document.GetElementsByTagName("table").count > 0
        Application.DoEvents
    Loop
    Dim tb = web.Document.GetElementsByTagName("table")
    If tb.trs.count = 0 Then Continue For
    Dim trs = tb(0).GetElementsByTagName("tr")   '根据标签得到数据集合
    For i1 As Integer = 1 To trs.count-1
        Dim r As Row = Tables("表C").AddNew
        Dim tds = trs(i1).GetElementsByTagName("td")
        r("序号") = tds(0).innerText
        r("股piao代码") = tds(1).innerText
        r("股piao名称") = tds(2).innerText
        r("公司全称") = tds(3).innerText
        r("上市日期") = tds(4).innerText
        r("招股书") = tds(5).innerText
        r("公司财报") = tds(6).innerText
        r("行业分类") = tds(7).innerText
        r("主营业务") = tds(8).innerText
        web.Dispose
        r.Save()
    Next
Next

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

if tb.count = 0 then continue for

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2021/2/7 11:33:00 [只看该作者]

还是有问题,请有点蓝老师指教,谢谢!!


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


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,哪一行出错?

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2021/2/7 11:40:00 [只看该作者]


运行到7(黄色标记)时出错。(显示到7)

DataTables("表C").DataRows.Clear()
For i As Integer = 1 To 10
    Dim web As New System.Windows.Forms.WebBrowser()
    web.Navigate("https://s.askci.com/stock/0-0-0/" & i & "/")
    web.ScriptErrorsSuppressed = True
    Do Until web.ReadyState = 4 AndAlso web.Document.GetElementsByTagName("table").count > 0
        Application.DoEvents
    Loop
output.Show(1)
    Dim tb = web.Document.GetElementsByTagName("table")
output.Show(2)
    If tb.count = 0 Then Continue For
output.Show(3)
    Dim trs = tb(0).GetElementsByTagName("tr")   '根据标签得到数据集合
output.Show(4)
    For i1 As Integer = 1 To trs.count-1
output.Show(5)
        Dim r As Row = Tables("表C").AddNew
output.Show(6)
        Dim tds = trs(i1).GetElementsByTagName("td")
output.Show(7)
        r("序号") = tds(0).innerText
        r("股piao代码") = tds(1).innerText
        r("股piao名称") = tds(2).innerText
        r("公司全称") = tds(3).innerText
        r("上市日期") = tds(4).innerText
        r("招股书") = tds(5).innerText
        r("公司财报") = tds(6).innerText
        r("行业分类") = tds(7).innerText
        r("主营业务") = tds(8).innerText
output.Show(8)
        web.Dispose
output.Show(9)
        r.Save()
output.Show(10)
    Next
output.Show(11)
Next
[此贴子已经被作者于2021/2/7 11:41:36编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

一样判断一下tds数组的数量是不是为0 

tds.count

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2021/2/7 12:18:00 [只看该作者]

有点蓝老师,好像还是不行,做一个案例上传,还请指教,谢谢!!


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb



 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106538 积分:541855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/7 13:38:00 [只看该作者]

Dim tds = trs(i1).GetElementsByTagName("td")
if tds.count = 9 then
r("序号") = tds(0).innerText
……
end if

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