下面这段代码是根据“代码表”获取指定日期段的股piao历史数据,并填充到“股piao数据”表中,由于数据量很大,占用内存造成死机,如何在代码运行中释放内存,请各位老师指教,谢谢!!
Dim dm,dm1 As String
For Each dr As DataRow In DataTables("代码表").DataRows
If dr.IsNull("简码") = False Then
dm = dr("简码")
If dm >= 600000 Then
dm1 = "0" & dm
Else
dm1 = "1" & dm
End If
End If
Dim obj_down As New System.Net.WebClient()
Dim data As String = obj_down.DownloadString("http://quotes.money.163.com/service/chddata.html?code=" & dm1 & "&start=" & _sr & "&end=" & _zr & "&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP")
data = data.Replace(vblf,"")
Dim rs() As String = data.Split(vbcr)
For i As Integer = 1 To rs.Length - 2
Dim cs() As String = rs(i).Split(",")
If cs.Length = 15 Then
DataTables("股piao数据").LoadFilter = "股piao代码 = '" & dm & "' and 日期 >= '" & _sr & "' and 日期 <= '" & _zr & "'"
DataTables("股piao数据").Load
Dim pr1 As DataRow = DataTables("股piao数据").Find("股piao代码 = '" & dm & "'and 日期 = '" & cs(0) & "'")
If pr1 Is Nothing Then
Dim pr As DataRow = DataTables("股piao数据").Addnew()
pr("日期") = cs(0)
pr("股piao代码") = Right(cs(1),6)
pr("名称") = cs(2)
If cs(3) = "None" Then
pr("收盘价") = 0
Else
pr("收盘价") = cs(3)
End If
If cs(4) = "None" Then
pr("最高价") = 0
Else
pr("最高价") = cs(4)
End If
If cs(5) = "None" Then
pr("最低价") = 0
Else
pr("最低价") = cs(5)
End If
If cs(6) = "None" Then
pr("开盘价") = 0
Else
pr("开盘价") = cs(6)
End If
If cs(7) = "None" Then
pr("前收盘") = 0
Else
pr("前收盘") = cs(7)
End If
If cs(8) = "None" Then
pr("涨跌额") = 0
Else
pr("涨跌额") = cs(8)
End If
If cs(9) = "None" Then
pr("涨跌幅") = 0
Else
pr("涨跌幅") = cs(9)
End If
If cs(10) = "None" Then
pr("换手率") = 0
Else
pr("换手率") = cs(10)
End If
If cs(11) = "None" Then
pr("成交量") = 0
Else
pr("成交量") = cs(11)
End If
If cs(12) = "None" Then
pr("成交金额") = 0
Else
pr("成交金额") = cs(12)
End If
If cs(13) = "None" Then
pr("总市值") = 0
Else
pr("总市值") = cs(13)
End If
If cs(14) = "None" Then
pr("流通市值") = 0
Else
pr("流通市值") = cs(14)
End If
DataTables("股piao数据").Save()
End If
End If
Next
Next