al momento mi sfugge il misterioso motivo (probabilmente il bind messo prima fa scorrere il datareader alla fine, "consumandolo"), ma con un semplice debug è presto spiegato.
piuttosto, non capisco lo scopo del tuo codice.