qui puoi trovare documentazione direttamente da mamma microsoft
http://tinyurl.com/729pw
in ogni caso se dicessi l'errore preciso sarebbe utile.
Per questa ragione puoi anche togliere eventuali gestione di errori (try) che nascondono il messaggio preciso dell'errore.
Poi, quando si legge un datareader, e' sempre meglio stare attenti agli eventuali valori null usando ad esempio isdbnull e in piu' e' utile usare le funzioni del datareader che convertono automaticamente il valore nel tipo giusto es.
codice:If (!IsDBNull(tuodatareader["campo"]) { tuavar = tuodatareader.getstring["campo"];}