我目前使用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,但它只是一个参考吗?我进一步搜索,但没有找到合作。
答案 0 :(得分:1)
CsvReader快速可靠,我几乎可以肯定你找不到更快的东西(如果有的话)来读取CSV数据。
限制来自DataTable处理新数据,2500 * 500即数量。我认为最快的方法是直接使用CsvReader-> DataBase(ADO.NET)链。
答案 1 :(得分:0)
答案 2 :(得分:0)
从数据库填充时始终使用BeginLoadData()
和EndLoadData()
,因为它们已经自己强制执行约束 - 唯一的缺点是CSV文件显然没有,因此任何异常只会在整个操作结束。
...
dt.BeginLoadData();
dt.Load(csv, LoadOption.Upsert);
dt.EndLoadData();
编辑:仅当LoadOption.Upsert
为空,或者您不想保留现有数据的任何先前更改时才使用DataBase
- 它更快方式。