Výjimka znamená, že získáte neočekávaný výsledek. Metoda ExecuteNonQuery se pokusí provést dotaz, který nevrací žádné řádky, a vrátí celé číslo zobrazující počet řádků upravených v databázi. Pokouší se tedy vložit pole výsledků do celočíselného pole, což není možné.
Abych odpověděl na vaši otázku, příčinou chyby je dotaz. Pro vybrané dotazy byste měli použít ExecuteReader()
metoda.