我必须从数据库中提取150K
记录。我正在使用da.Fill(ds,"Query")
及其引发的system.outofmemoryexception
。
Dim daGrid As New SqlDataAdapter(sqlcmd_q)
daGrid.Fill(dsGrid, "Query")
daGrid.Dispose()
我只需要此数据表。我不能使用XML。因为我需要将此分配给MSChartControl才能显示ScotterPlot。
有什么建议么?
最佳答案
我要检查的第一件事是要返回多少列,以及它们的数据类型是什么。尽管有15万条记录,但是除非每条记录的长度约为13K(在32位计算机上),否则不应给您一个OOM异常。这向我表明,您返回的字段超出了所需的数量,或者某些字段是非常大的字符串或二进制数据。尝试缩减select语句,以仅返回显示绝对需要的字段。
如果这不起作用,则可能需要从DataTable移至自定义数据类型的列表(具有适当字段的类)。
关于c# - system.outofmemoryexception何时填充DataAdapter?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5092510/