关于c#winform无数据库处理6万数据量的困惑

有一个需求,6万条的txt文本中有八列,第一列为id其余为介绍列,id列需要检测是否重复,系统提供用户导出重复内容,提供删除重复项功能。要求减少其他第三方软件的安装,包括数据库。经过几次尝试,数据操作时间很长经常卡死。增加access数据库依然如此。请高手指点。

你可以在循环中插入Application.DoEvents();
这样就不会卡死了。
也可以放在工作线程中。

6万记录不是很多,现在机器内存可以处理,你说处理时间很长,那么可以加一些时间检测,看是不是你的代码处理有问题,比如死循环等。

使用StreamReader,另辟线程逐行读取并验证插入(也可先插入到一个临时表中 ,ADO.NET),设计进度条查看运行进度。
6万行对现在的计算机来说应该不算什么大数据了,很快的。

如果id是字符串,用HashSet,如果ID是数字,可以用bit位数组,6W数据,太少了,600万都没问题,只遍历一下就行了。

1) 使用TextReader比使用StreamReader快
2) 如果并发情况不严重,使用SQLite,只需要dll,不需要其他的安装,支持绝大部分SQL语法。可以快速的查找除重复项。任务结束后,直接删除数据库文件即可。