通过代码后面的数据表进行分页

时间:2011-08-01 13:24:09

标签: c# datatable

我需要处理来自我控制之外的数据库(SQL,Oracle,Access,MySQL,Sharepoint等)的非常大的数据表(200万行+):目前我遍历构建字符串对象的每一行和每列,但是我以大约10万行运行out of memory

我可能采取的唯一解决方案是将数据块分解为更小的块并在开始下一个行块之前保持每个块。

由于我无法添加ROW_NUMBER()或类似的东西,我必须处理填充的数据表。

如何轻松(记住性能)将填充的数据表分解为较小的数据表,如分页?

PS此功能没有可视组件。

2 个答案:

答案 0 :(得分:1)

您使用字符串连接吗?像这样string += string

将其更改为StringBuilder,您不应该遇到问题,至少不会有20k行。

答案 1 :(得分:0)

如果您正在讨论填充DataTable对象(在处理之前将调用结果加载到内存中),您可能最好为每个提到的提供程序使用datareader,这样您就可以处理从数据库中读取的每一行,而不是将DataTable存储在内存中......

A great answer to another question列出了datareaders / datatables的优缺点

如果您已经在使用数据加载器 - 请忽略这一点。但是你的记忆问题也可能来自存储检索到的结果......