Синтаксис знака вопроса работает во всех других местах. Кроме того, я попытался использовать предложенный вами синтаксис и получил новую ошибку - «ОШИБКА [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+"'";
Все отлично работает
Может быть, это связано с тем, что у меня есть знак @ в параметризованном значении? Я склонен думать, что я не первый, кто пытается создать готовое заявление с адресом электронной почты ...
Я понятия не имею, что не так! Другие подготовленные заявления работают нормально ...
Можете ли вы помочь? :) Спасибо, Нили