Untuk pembaca pertanyaan ini di masa mendatang:perhatikan bahwa masalah terjadi karena OP mengembalikan terlalu banyak kolom dalam kueri. Lihat komentar di bawah jawaban ini.
Saya tidak yakin mengapa ini terjadi, tetapi Anda benar-benar hanya perlu memeriksa baris sekali, bukan dua kali, dan Read()
metode sudah melakukan ini.
Jadi yang Anda butuhkan hanyalah
while (reader.Read())
{
// Do your thing
}