2012-05-16 2 views

Répondre

5

Vous pouvez utiliser le fournisseur OLE DB approprié pour interroger le fichier texte. Vous pouvez trouver la chaîne de requête ici:

Textfile Connection String Samples

+0

Existe-t-il un moyen d'analyser différentes valeurs de format de date à l'aide de OLE DB avec un fichier CSV? Comme 'mm.dd.yyyy' ou' mm-dd-yyyy'? –

6

Vous pouvez utiliser ODBC pour exécuter une requête sur un fichier 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 
    } 
+0

Une note mineure, cela ne compile pas en raison de la minuscule 'r' dans' while (oDR.read()) ' – 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

Vous pouvez utiliser Openrowsets.

Activer SQL Ad Hoc/Openrowset dans la configuration SQL en premier. Une fois activé, vous pourrez connecter votre studio SQL Server Managerment et interroger des fichiers Excel et délimités par des virgules.

Vos questions ressemblera à quelque chose comme:

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

Vous pouvez utiliser ces requêtes dans votre code C# comme vous interrogez d'autres tables. Vérifiez auprès de votre responsable qu'il est d'accord pour que vous activiez ad hoc sur le serveur SQL

Questions connexes