Problema con Numeri excel

martedì 07 novembre 2006 - 10.42

mokup Profilo | Newbie

Ciao ragazzi.
Il mio problema è il seguente:
Devo leggere i dati da una tabella in un foglio excel, il fatto è che in una colonna dove ho ad esempio i valori 1,5 - 4x2 - 6 mi legge il secondo valore correttamente mentre gli altri risultano nulli.
Quando leggo i dati riempio un datatable con il seguente codice:

while(r.Read())
{
DataRow dr=dt.NewRow();
for(int i=0;i<maxr;i++)
{
dr[i]=(!r.IsDBNull(i))?r.GetValue(i):"";
//Console.WriteLine(dr[i].ToString());
}
dt.Rows.Add(dr);
}

Ho provato anche a cambiare il formato delle celle, li ho provati tutti, generale, numero, testo, ecc. Ma non cambia niente.

dove r è un oggetto OleDbDataReader.
Spero che qualcuno mi possa aiutare, grazie

micto27 Profilo | Senior Member

>Ciao ragazzi.
>Il mio problema è il seguente:
>Devo leggere i dati da una tabella in un foglio excel, il fatto
>è che in una colonna dove ho ad esempio i valori 1,5 - 4x2 -
>6 mi legge il secondo valore correttamente mentre gli altri
>risultano nulli.
>Quando leggo i dati riempio un datatable con il seguente codice:
>
>while(r.Read())
>{
> DataRow dr=dt.NewRow();
> for(int i=0;i<maxr;i++)
> {
> dr[i]=(!r.IsDBNull(i))?r.GetValue(i):"";
> //Console.WriteLine(dr[i].ToString());
> }
> dt.Rows.Add(dr);
>}
>
>Ho provato anche a cambiare il formato delle celle, li ho provati
>tutti, generale, numero, testo, ecc. Ma non cambia niente.
>
>dove r è un oggetto OleDbDataReader.
>Spero che qualcuno mi possa aiutare, grazie

Secondo me la prima riga del foglio excel viene considerata come testata della tabella
e il contenuto delle celle di tale riga viene interpretato come Nome della colonna.
Puoi provare ad inserire una prima riga nel foglio excel contenente i nomi colonna per verificare se è come
ho ipotizzato?

Ciao, Michele

mokup Profilo | Newbie

Ti ringrazio per la risposta. In realtà però il problema è di un altro tipo.
Nel tentativo di leggere i dati, il provider Microsoft.Jet.OLEDB.4.0 effettua una campionatura sui dati da prendere ed in base a questa campionatura decide il tipo di dato della colonna.
La cosa strana e che se il tipo di di una colonna è String ed una cella di questa colonna è un numero mi restituisce null.
In effetti se metto su tutta la colonna dei numeri il tipo di dato risulterà Double e tutto funziona correttamente.
Quindi il problema si verifica quando fanno parte di questa colonna stringhe e numeri.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5