2016-12-13 88 views
-1

我有一个csv文件,我需要处理才能找到几行项目。我按照教程here将CSV文件读入DataTable。当我的查询是:VB.Net查询CSV文件

SELECT * FROM <NameOfCsvFile> 

这很好,但它将整个CSV文件作为DataTable返回。我只想要一部分文件来检查已知的错误。所以我修改我的查询是这样的:

SELECT * FROM <NameOfCsvFile> WHERE Column1 IN (Int1,Int2,Int3,Int4,Int5) 

当我检查在调试器中的数据表输出它有正确的行数(即5),但行列表等于不了了之。

我怎样才能得到这个工作MS的查询接口,而不是手动循环整个CSV文件,以返回我找到的数百个记录中的5个记录?

+0

进口可能已经将您的整数值串,尝试'''列1 IN(“INT1”,“INT2” ......''' – Anand

+0

没有理由当然,你可以加载所有的行并将WHERE作为过滤器来使用,根据数据的不同,OleDB可能会转换为部分或全部列的文本,假设'Column1'代表列名称,而不是一些尝试只是加载列表中的某些列 – Plutonix

+0

@Anand我试图将它们转换为字符串,我没有得到任何数据表,因此我不认为它们正在转换为字符串 – Talguy

回答

0

我想通了。查询工作正常,但调试器不允许您查看哪些行因为尚未解码而返回。调用Dim rows() as DataRows = dt.Select("")允许我查看CSV文件查询的实际结果。

所有在世界上现在好了