我试图找出一些处理大型数据文件的最佳方法。我有一个场景,我将有几个CSV文件,我希望能够查询数据。我将逐行阅读其中一个csv文件,但我需要能够根据当前正在阅读的行中的密钥查询第二个CSV文件。我不想(至少我不这么认为)将整个CSV加载到内存对象中,因为它们可能是数百万行并且会占用大量的RAM。我已经考虑过将它们写入某种类型的数据库文件,但由于您基本上复制了数据,这似乎并不高效。有什么建议吗?
答案 0 :(得分:-1)
您可以尝试OleDb,使用数据适配器在数据表中加载数据,并对其执行查询。这link解释了
String conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;
Extended Properties=""Text;HDR=No;FMT=Delimited""";
OleDbConnection cn = new OleDbConnection(conn);
OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM C:\Temp\teams.csv", cn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
cn.Open();
DataTable dt = new DataTable();
da.Fill(dt);