如何对CSV文件使用SQL
我想使用C#在CSV文件上使用SQL查询。 java 这里有类似的东西。 c#有这样的东西吗?
您可以使用适当的OLE DB提供程序来查询文本文件。 您可以在此处找到查询字符串:
Textfile连接字符串示例
您可以使用ODBC对CSV文件运行查询:
string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};" + "Dbq=C:;Extensions=csv,txt"; OdbcConnection objCSV = new OdbcConnection(strConn); objCSV.Open(); OdbcCommand oCmd = new OdbcCommand("select column1,column2 " + "from THECSVFILE.CSV", objCSV); OdbcDataReader oDR = oCmd.ExecuteReader(); while (oDR.read()) { // Do something }
所以,你的意思是使用Linq?
像这些之一?
https://blogs.msdn.com/b/wriju/archive/2009/05/24/linq-to-csv-getting-data-the-way-you-want.aspx
https://blogs.msdn.com/b/ericwhite/archive/2008/09/30/linq-to-text-and-linq-to-csv.aspx
// need to add // using System.Linq; void Main() { var path = @"C:myfile.csv"; string csv = System.IO.File.ReadAllText( path ); var array = csv.Split(new[]{","}, StringSplitOptions.RemoveEmptyEntries); // Do the mapping with your databinding object var personArray = array.Select(p => new Person { Name = p}); // You need to have this DataContext defined somewhere, for instance using LinqToSql using(var context = new PersonDataContext()){ context.InsertAllOnSubmit(personArray); context.SubmitChanges(); } } // Imagine this class is one of linqToSql class public class Person{ public string Name {get;set;} }
您可以使用Openrowsets。
首先在SQL配置中启用SQL Ad Hoc / Openrowset。 启用后,您将能够连接SQL Server Managerment工作室并查询Excel和逗号分隔文件。
您的查询将类似于:
SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir={your path}','SELECT * FROM ypurtextfile.csv')
您可以在C#代码中使用这些查询,就像查询任何其他表一样。 只需咨询您的经理,他就可以在SQL Server上启用ad hoc
上述就是C#学习教程:如何对CSV文件使用SQL分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1022779.html