2012-05-16 18 views

cevap

5

Metin dosyasını sorgulamak için uygun OLE DB sağlayıcısını kullanabilirsiniz. Eğer Linq kullanarak demek oluyor, Yani

Textfile Connection String Samples

+0

OLE DB ile CSV dosyası kullanarak farklı Tarih formatı değerlerini ayrıştırmanın bir yolu var mı? "Mm.dd.yyyy" veya "mm-gg-yyyy" gibi mi? –

6

bir CSV dosyası karşı bir sorgu çalıştırmak için ODBC kullanabilirsiniz:

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 
    } 
+0

Küçük bir not, bu, “r” in (oDR.read()) küçük harfinden dolayı derlenmiyor. – akousmata

1
// 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;} 
} 
0

Sen Openrowsets kullanabilirsiniz.

Önce SQL yapılandırmasında SQL Ad Hoc/Openrowset'i etkinleştirin. Bir kez etkinleştirildiğinde, SQL Server Managerment stüdyosunu bağlayabilir ve Excel ile virgülle ayrılmış dosyaları sorgulayabilirsiniz. Eğer herhangi bir başka tablo sorgulamak gibi C# kodunda bu sorgularını kullanabilirsiniz

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

:

sorguların gibi bir şey olacaktır. Sadece yöneticinizle SQL Server'da geçici olarak etkin duruma getirildiğini kontrol edin

İlgili konular