Сначала убедитесь, что вы используете правильный поставщик данных для версии .NET, на которой вы работаете.Это наиболее вероятный виновник.
Другие идеи:
Попробуйте использовать ExecuteScalar вместо executereader.
Попробуйте выбрать 1 из двойного: выберите 1 из двойного.Посмотрите, возвращает ли это значение 1. Затем попробуйте выбрать count (1) из двойного и посмотрите, получите ли вы 1.
Вам не нужен cmd.CommandText, так как вы уже устанавливаете его при создании команды.
Также может потребоваться указать имя таблицы с именем схемы.