7

C#を使用してCSVファイルでSQLクエリを使用したいと思います。ここにjavaのようなものがあります。C#にこのようなものはありますか?

4

5 に答える 5

8

ODBC を使用して、CSV ファイルに対してクエリを実行できます。

// using System.Data.Odbc;

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
}
于 2012-05-16T18:23:28.593 に答える
5

適切なOLEDBプロバイダーを使用して、テキストファイルをクエリできます。クエリ文字列は次の場所にあります。

テキストファイル接続文字列のサンプル

于 2012-05-16T18:18:17.847 に答える
2
// 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;}
}
于 2012-05-16T18:26:43.317 に答える
1

つまり、Linqを使用するということですか?

これらのようなもの?
http://blogs.msdn.com/b/wriju/archive/2009/05/24/linq-to-csv-getting-data-the-way-you-want.aspx
http://blogs.msdn.com /b/ericwhite/archive/2008/09/30/linq-to-text-and-linq-to-csv.aspx

于 2012-05-16T18:18:33.097 に答える
0

Openrowsets を使用できます。

まず、SQL 構成で SQL Ad Hoc/Openrowset を有効にします。有効にすると、SQL Server Managerment Studio に接続し、Excel およびコンマ区切りファイルをクエリできるようになります。

クエリは次のようになります。

SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir={your path}','SELECT * FROM ypurtextfile.csv')

これらのクエリは、他のテーブルに対してクエリを実行する場合と同様に、C# コードで使用できます。SQL Server でアドホックを有効にしても問題ないことをマネージャーに確認してください。

于 2012-05-16T18:27:21.590 に答える