我必须从数据库中提取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/

10-10 20:47