Je travaille sur un projet et je dois lire un fichier CSV, puis remplir un DataSet avec ses données. J'ai cherché et j'ai trouvé des choses intéressantes dans OleDB.Création d'un DataTable à partir d'un fichier CSV
J'ai un CSVReader de classe:
class CSVReader
{
public DataTable GetDataTable(string filePath)
{
OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Path.GetDirectoryName(filePath) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
conn.Open();
string strQuery = "SELECT * FROM [" + Path.GetFileName(filePath) + "]";
OleDbDataAdapter adapter = new OleDbDataAdapter(strQuery, conn);
DataSet ds = new System.Data.DataSet("CSV File");
adapter.Fill(ds);
return ds.Tables[0];
}
}
Et je l'appelle d'ici:
CSVReader datareader = new CSVReader();
DataTable dt = datareader.GetDataTable(filepath);
Le problème est qu'il parse la première ligne (la ligne d'en-tête) juste comme un identificateur pour la colonne, je veux dire: Ceci est l'en-tête du fichier CSV:
séparé par des virgules.
Lorsque je lis le fichier, remplis l'ensemble de données et j'imprime dt.Columns.Count il montre qu'il n'a que 1 colonne.
Une aide?
Merci d'avance.
double possible de [Comment lire un fichier csv dans un .net datatable] (http: // stackoverflow.com/questions/1050112/how-to-read-a-csv-file-into-a-net-datatable) –
Ma solution est la même que Jim Scott (http://stackoverflow.com/questions/1050112/ comment-lire-un-csv-fichier-dans-un-net-datatable/1050278 # 1050278), mais cela ne fonctionne pas: S –