当前位置: 代码迷 >> C# >> 使用Microsoft Text Driver把csv文件当作数据库来查询,如果设计到2个csv文件关联,查询语句该如何写
  详细解决方案

使用Microsoft Text Driver把csv文件当作数据库来查询,如果设计到2个csv文件关联,查询语句该如何写

热度:84   发布时间:2016-05-05 05:13:23.0
使用Microsoft Text Driver把csv文件当作数据库来查询,如果设计到2个csv文件关联,查询语句该怎么写?
单个表查询可以这样写:


            string csvDirectory = "C:/";
            string csvFile = "[test.csv]";
            OdbcConnection dbConn = new OdbcConnection("Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" + csvDirectory + @";Extended Properties='Text;FMT=Delimited(,);HDR=NO;IMEX=1'");
            dbConn.Open();
            string sql = @"SELECT * FROM " + csvFile;


但是如果有多csv的话,查询语句该怎么写?
------解决思路----------------------
不会,但是我觉得你可以这样。你把两个文件分别查询到两个DataSet或者DataTable里面,然后在用这两个DataSet或者DataTable里面的数据做处理,来得到你想要的数据。
------解决思路----------------------
应该是不支持这样查,它毕竟不是数据库
就好比你分别去查询两个sql server数据库里的2张表

你可以按1楼的办法,先都读出来,然后用LINQ在内存里处理
------解决思路----------------------
或者你使用一个轻量级的数据库,比如access,sqlite,mysql之类的,而不是用2个单独的文件当做数据表用
------解决思路----------------------
全部加载到内存然后用linq to obj来读,毕竟是文件不是数据库。
  相关解决方案