Leggi l'errore di tipo field dal file excel

Utilizzo questa function per leggere le informazioni da file xls (2003)

var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", path); var adapter = new OleDbDataAdapter("SELECT * FROM [page1$]", connectionString); var ds = new DataSet(); adapter.Fill(ds, "anyNameHere"); var data = ds.Tables["anyNameHere"].AsEnumerable(); List<client> query = data.Where(x => x.Field<string>(1) != string.Empty) .Select(x => new client { Code = x.Field<string>(1) != null ? x.Field<string>(1) : "None", name = x.Field<string>(2), } 

alcuni codici in file hanno formato Int come "2100" e altri come "G200" ma il field (1) è stato letto come doppio e non può leggere il secondo tipo (errore cast). Ho preso uno sguardo al file xls e la colonna in tipo standard anche io lo rendo text, ma ho lo stesso problema.

PS: ho usato passo dopo passo e ho scoperto che i dati hanno il codice di field per il secondo tipo NULL.

@GertArnold:

1 => M; 2801; Ronald

2 => M; 3005; Soufian

3 => F; 2009; Elisabetta

.

.

121 => M; G125; khaled => il codice est la null

Faccio una quarta colonna con la formattazione => = TEXTE (B1; "####") e faccio la stessa formattazione per tutta la cella colmne e ottengo il codice da questa colonna e funziona