Синтаксис знака вопроса работает во всех других местах. Кроме того, я попытался использовать предложенный вами синтаксис и получил новую ошибку - «ОШИБКА [42000] [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Должен объявить скалярную переменную« @USER_ID »».

я проблема с подготовленным заявлением в C #:

OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
cmd.Parameters.Add("@USER_ID", OdbcType.VarChar, 250).Value = email;

(конечно, электронная почта содержит действительный адрес электронной почты со знаком @).

Этот код возвращает случайную ошибку -

«Соединение было отключено» {«ОШИБКА [01000] [Microsoft] [Драйвер ODBC SQL Server] [Сокеты TCP / IP] ConnectionWrite (send ()). ОШИБКА [08S01] [Microsoft] [Драйвер ODBC SQL Server] [TCP / IP-сокеты] Общая ошибка сети. Проверьте сетевую документацию. "}

Однако, если я запускаю свой код без подготовленного оператора, это означает:

cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = '"+email+"'";

Все отлично работает

Может быть, это связано с тем, что у меня есть знак @ в параметризованном значении? Я склонен думать, что я не первый, кто пытается создать готовое заявление с адресом электронной почты ...

Я понятия не имею, что не так! Другие подготовленные заявления работают нормально ...

Можете ли вы помочь? :) Спасибо, Нили

Ответы на вопрос(3)

Ваш ответ на вопрос