Подготовленные операторы C # - Запросы со знаком @ (в / Strudel)

У меня проблема с подготовленным оператором на 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 Драйвер сервера] [TCP / IP Сокеты] ConnectionWrite (send ()). ОШИБКА [08S01] [Microsoft] [ODBC SQL Драйвер сервера] [Сокеты TCP / IP] Общие ошибка сети. Проверьте свою сеть документации. "}

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

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

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

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

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

Не могли бы вы помочь? :) Спасибо, Nili

9
задан Neil Knight 10 February 2011 в 08:33
поделиться