Pro budoucí čtenáře této otázky:Všimněte si, že problém nastal, protože OP vracel příliš mnoho sloupců v dotazu. Viz komentáře pod touto odpovědí.
Nejsem si úplně jistý, proč se to děje, ale opravdu stačí zkontrolovat řádky jednou, ne dvakrát, a Read()
metoda to již dělá.
Takže vše, co opravdu potřebujete, je
while (reader.Read())
{
// Do your thing
}