Do przyszłych czytelników tego pytania:zauważ, że problem wystąpił, ponieważ OP zwracał zbyt wiele kolumn w zapytaniu. Zobacz komentarze pod tą odpowiedzią.
Nie jestem do końca pewien, dlaczego tak się dzieje, ale tak naprawdę wystarczy sprawdzić wiersze tylko raz, a nie dwa razy, i Read()
metoda już to robi.
Tak więc wszystko, czego naprawdę potrzebujesz, to
while (reader.Read())
{
// Do your thing
}