Foxtable(狐表)用户栏目专家坐堂 → [求助]代码运行过程释放内存


  共有2448人关注过本帖平板打印复制链接

主题:[求助]代码运行过程释放内存

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]代码运行过程释放内存  发帖心情 Post By:2020/1/20 13:33:00 [只看该作者]

下面这段代码是根据“代码表”获取指定日期段的股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

 回到顶部