>Ciao ragazzi
Ciao!
>Il problema e' questo la query riportata nel codice non esegue
>il popolamento della gridview, nonostante se si esegue il debug,
>il reader contiene una riga. Ovviamente la stessa query eseguendola
>direttamente da SQL Server funziona recuperando (giustamente)
>una riga...
>Quale puo' essere il problema ???
Se fai la read prima di associare il controllo al gridview, il puntatore al reader si sposta al record successivo, che corrisponde alla fine del reader.. E siccome il sqldatareader è forward only, perdi il record. Quando assegni il reader alla tua gridview, non fare operazioni di nessun tipo su di esso. Il metodo DataBind() si occuperà di leggere i dati dal tuo datareader. Assegna solamente la proprietà datasurce. Ti allego un esempio di codice:
Ho utilizzato lo statemet Using, consigliato per gestire al meglio il rilascio delle risorse.
Inoltre, e scusa se mi permetto, ho notato che il tuo codice possiede una scarsa tipizzazione "forte". Sembra quasi che l'option strict del tuo Visual Studio per Visual Basic sia ad off. Cerca di evitarlo SEMPRE. Tipizza e vedrai che ti togli tanti problemi di gestione. Poi, logicamente, il tipo è fondamentale per una corretta programmazione. Ci sarebbe da dire tantissimo sulla scelta dell'option strict che hai fatto, ma ci sarebbe da scrivere tantissimo. Tienilo sempre a ON (anche da impostazioni di visual studio), mi raccomando.
@luigidibiasi
>se non sbaglio alla datagrid nella proprietà datasource devi passare un dataView oppure una datatable non direttamente il dataReader.
Attenzione, stiamo parlando di gridview. E attenzione 2 , puoi passare anche direttamente il datareader. Ad una proprietà DataSurce puoi passare qualunque oggetto che implementi le interfacce richieste per il binding.
> Grazie a tutti
di nulla!
Alx81 =)
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org