Till framtida läsare av denna fråga:notera att problemet uppstod eftersom OP returnerade för många kolumner i frågan. Se kommentarerna under det här svaret.
Jag är inte helt säker på varför detta händer, men du behöver egentligen bara leta efter rader en gång, inte två gånger, och Read()
metoden gör redan detta.
Så allt du egentligen behöver är
while (reader.Read())
{
// Do your thing
}