版主,我调整了一下我的表格的列的顺序,
以前应该是"名称","价格","涨跌额","涨跌幅","发布日期",现在把“发布日期”放在第一列了,错误提示如下
.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,国际市场原油价格窗口,Button1,Click
详细错误信息:
从类型“Double”到类型“Date”的转换无效。
此主题相关图片如下:表结构.png

代码如下,红色部分好像有问题,弹出错误提示在4之后。
Dim web As New System.Windows.Forms.WebBrowser()
web.ScriptErrorsSuppressed = True
web.Navigate("http://youjia.chemcp.com/YuanYouJiaGe.asp")
Do Until web.ReadyState = 4
Application.DoEvents
Loop
Dim Cols() As String = { "名称","价格","涨跌额","涨跌幅", "发布日期" }
Dim ts = web.Document.GetElementsByTagName("table")
If ts.count <= 5 Then
MessageBox.show("网络连接失败,请检查网络设置!")
Else
Dim elems As object = web.Document.GetElementsByTagName("table")(5).GetElementsByTagName("tr")
Dim t As Table = Tables("国际市场原油价格表")
For i As Integer = 1 To elems.count-1
Dim tdelems As object = elems(i).GetElementsByTagName("td")
MessageBox.show("1")
Dim fdr As DataRow = t.DataTable.Find("名称 = '" & tdelems(0).Innertext & "' and 发布日期 = #" & tdelems(4).Innertext & "#")
MessageBox.show("2")
If fdr Is Nothing Then
fdr = t.DataTable.AddNew
MessageBox.show("3")
End If
For j As Integer = 0 To Cols.length-1
If t.Cols(j).IsNumeric Then
MessageBox.show("4")
fdr(Cols(j)) = val(tdelems(j).Innertext.replace("↓", "").replace("↑", "").replace("%", ""))
MessageBox.show("5")
Else
MessageBox.show("6")
fdr(Cols(j)) = tdelems(j).Innertext
End If
Next
fdr("更新时间") = Date.Now
MessageBox.show("7")
Next
t.save
Tables("国际市场原油价格表").Sort = "发布日期 DESC"
MessageBox.show("数据更新完毕!")
End If