我目前使用来自Codeproject的自定义CSV类来创建CSV对象。然后我使用它来填充一个DataTable。在概要分析下,这比我想要的花费了更多的时间,我想知道是否有更有效的方法来做这件事?
CSV包含大约2,500行和500列。
CSV阅读器来自:http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader
StreamReader s = new StreamReader(confirmedFilePath);
CsvReader csv = new CsvReader(s, true);
DataTable dt = new DataTable();
dt.Load(csv);我偶然在谷歌上搜索到一个DataAdapter,但只有一个引用了这个?我进一步搜索,但没有找到任何合作。
发布于 2012-04-19 22:20:13
CsvReader是快速和可靠的,我几乎可以肯定你找不到更快的读取CSV数据的方法(如果有的话)。
限制来自DataTable处理新数据,2500*500的数量。我认为最快的方法是直接CsvReader->数据库(ADO.NET)链。
发布于 2012-04-19 21:39:55
试一试GenericParser。
发布于 2012-12-02 05:41:36
从数据库填充时始终使用BeginLoadData()和EndLoadData(),因为它们本身已经强制执行约束-唯一的缺点是CSV文件显然不会这样做,因此只有在整个操作结束后才会抛出任何异常。
...
dt.BeginLoadData();
dt.Load(csv, LoadOption.Upsert);
dt.EndLoadData();编辑:仅在DataBase为空时使用LoadOption.Upsert,或者您不想保留对现有数据的任何先前更改-这样做会更快。
https://stackoverflow.com/questions/10229118
复制相似问题