想用C#做查询程序处理access里的数据,提示OutOfMemoryException

.Net技术 码拜 5年前 (2016-05-15) 461次浏览
有一个Access的文件,里面大致380万条数据,直接用Access查询卡的不行,就想用C#编个程序。数据有多个字段,查询是多条件查询。之前没有接触过编程,所以现在是比较笨的办法,先用第一个条件查询一遍,然后后面的条件都在上个条件查询结果的datatable里面筛选并清空上一个datatable,最后再在DataGridView里显示。结果用少量数据试没问题,用这个文件一查询就提示OutOfMemoryException。刚学这个也不知道怎么处理,希望大家能提供点思路~
解决方案

5

380万数据用mdb是不是有点不合适?
多条件查询可以参考下资料,像你这种多次筛选的做法效率太差

70

这么大数量,内存吃不消的
分段处理,如分成10段,每次取出38万条,经过N次筛选,最后剩下的就不多了;然后取出下一个38万条,同样进行N次筛选……,最后把每次筛选剩下的组合一起
还不行,你可以借助辅助数据库,将每次经N次筛选后的最终结果,添加到数据库tempDB,然后让datatable=null,以节约内存,等10次都操作完了,再从tempDB取出数据
或,对每个分段不要多次筛选,麻烦,直接查询符合全部条件的数据

5

引用:

这么大数量,内存吃不消的
分段处理,如分成10段,每次取出38万条,经过N次筛选,最后剩下的就不多了;然后取出下一个38万条,同样进行N次筛选……,最后把每次筛选剩下的组合一起
还不行,你可以借助辅助数据库,将每次经N次筛选后的最终结果,添加到数据库tempDB,然后让datatable=null,以节约内存,等10次都操作完了,再从tempDB取出数据
或,对每个分段不要多次筛选,麻烦,直接查询符合全部条件的数据

赞同二楼的看法,另外380W条数据用access是不合适的,这么多数据连sql都会感觉到压力额


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明想用C#做查询程序处理access里的数据,提示OutOfMemoryException
喜欢 (0)
[1034331897@qq.com]
分享 (0)