В коде есть две проблемы.
1: Вы не используете параметр @userID
в запросе. Поэтому он всегда возвращает всех пользователей, и единственный случай, когда результат будет пустым, - это если вообще нет пользователей.
Dim cmd As SqlCommand = New SqlCommand("SELECT user_ID FROM users where user_ID = @UserID", conn)
2: Вы устанавливаете переменную retValue
на false
снова перед оператором return
. Поэтому метод всегда возвращает false
независимо от результата проверки чтения данных.
Кроме того, вы должны позвонить Dispose
на считыватель данных.