C# 在c中检索大量数据时如何防止System.OutOfMemoryException

C# 在c中检索大量数据时如何防止System.OutOfMemoryException,c#,C#,我有一个C程序,在启动时用400万个GUI填充字典。 此时,我不断收到“System.OutOfMemoryException”错误类型的异常 例如: using (reportingconn) { var initialrowkeys = reportingconn.Query("select rowkey from table”); } 有谁能告诉我如何最好地将大量数据从SQL检索到字典中吗?使用SqlDataReader这将逐行读取,而不是SqlDataAdapter.Fill。

我有一个C程序,在启动时用400万个GUI填充字典。 此时,我不断收到“System.OutOfMemoryException”错误类型的异常

例如:

using (reportingconn)
{
    var initialrowkeys = reportingconn.Query("select rowkey from table”);
}

有谁能告诉我如何最好地将大量数据从SQL检索到字典中吗?

使用SqlDataReader这将逐行读取,而不是SqlDataAdapter.Fill。

使用SqlDataReader这将逐行读取,而不是SqlDataAdapter.Fill。

似乎C数据字典上有2GB的内存限制。一位程序员朋友告诉我将控制台应用程序从32位更改为64位,以防止这种限制。这似乎解决了我的问题。

C数据字典似乎有2GB内存限制。一位程序员朋友告诉我将控制台应用程序从32位更改为64位,以防止这种限制。这似乎解决了我的问题。

你真的需要一次全部400万吗?您正在寻找一个特定的图形用户界面吗?为什么在启动时需要填充400万个图形用户界面?这就是问题所在。我喜欢这个问题——一些老掉牙的老程序员不会问的经典案例,年轻程序员很少需要考虑流数据,小RAM。@ BRAD我需要使用那些GUID从Azure表存储N个循环中检索数据。我不想每次都访问数据库。数据库是用来存储大量数据并能够处理大量查询的。我更担心的是一个查询会返回数百万条结果,而不是按需点击数据库获取数据。你真的需要一次全部400万条吗?您正在寻找一个特定的图形用户界面吗?为什么在启动时需要填充400万个图形用户界面?这就是问题所在。我喜欢这个问题——一些老掉牙的老程序员不会问的经典案例,年轻程序员很少需要考虑流数据,小RAM。@ BRAD我需要使用那些GUID从Azure表存储N个循环中检索数据。我不想每次都访问数据库。数据库是用来存储大量数据并能够处理大量查询的。我更担心的是查询会返回数百万个结果,而不是按需访问数据库获取数据。我猜这个限制更像是2GB的连续可寻址内存。我猜这个限制更像是2GB的连续可寻址内存。