2010-04-13 21 views
1

J'utilise le code suivant pour lire mon fichier csv:caractères alphanumériques à partir du fichier csv en C#

public DataTable ParseCSV(string path) 
    { 
     if (!File.Exists(path)) 
      return null; 

     string full = Path.GetFullPath(path); 
     string file = Path.GetFileName(full); 
     string dir = Path.GetDirectoryName(full); 

     //create the "database" connection string 
     string connString = "Provider=Microsoft.ACE.OLEDB.12.0;" 
      + "Data Source=\"" + dir + "\\\";" 
      + "Extended Properties=\"text;HDR=Yes;FMT=Delimited\""; 

     //create the database query 
     string query = "SELECT * FROM " + file; 

     //create a DataTable to hold the query results 
     DataTable dTable = new DataTable(); 

     //create an OleDbDataAdapter to execute the query 
     OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString); 

     //fill the DataTable 
     dAdapter.Fill(dTable); 

     dAdapter.Dispose(); 

     return dTable; 
    } 

Mais ne lit pas au-dessus de la valeur alphanumérique du fichier csv. il lit seulement i numérique ou alpha.

Quel est le correctif que je dois faire pour lire les valeurs alphanumériques? Veuillez suggérer.

Répondre

0

Supprimer IMEX = 1 de la chaîne de connexion. Je ne pense pas que vous en ayez besoin pour les fichiers CSV.

+0

j'ai essayé aussi, mais il est encore le même résultat – Prasad

+0

étrange, Je faisais quelque chose au travail et utilisais à peu près le même code mais avec une chaîne de connexion différente pour un fichier délimité par des virgules - Fournisseur = Microsoft.Jet.OLEDB.4.0; Source de données = NomDirect; Propriétés étendues = 'text; HDR = Oui; FMT = délimité ' – anonymous

0

Essayez ceci OleDBAdapter Excel QA J'ai posté via le débordement de la pile.

Je n'ai pas essayé cela, mais cela semble intéressant! LinqToExcel ils disent qu'il peut être utilisé sur les fichiers .csv et ...

0

Salut à tous ce code est obtient des valeurs alphanumériques également

using System.Data.OleDb; 

string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filepath + ";" + "Extended Properties="+(char)34+"Excel 8.0;IMEX=1;"+(char)34; 

     string CommandText = "select * from [Sheet1$]"; 

     OleDbConnection myConnection = new OleDbConnection(ConnectionString); 
     myConnection.Open(); 

     OleDbDataAdapter myAdapter = new OleDbDataAdapter(CommandText, myConnection); 

     ds = null; 
     ds = new DataSet(); 
     myAdapter.Fill(ds);