C # Declaraciones preparadas - consultas @ sign (at / strudel sign)

Tengo un problema con una declaración preparada en 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;

(por supuesto, el correo electrónico contiene una dirección de correo electrónico válida, con signo @).

Este código devuelve un error aleatorio:

"La conexión ha sido deshabilitada" {"ERROR [01000] [Microsoft] [Controlador ODBC SQL Server] [TCP / IP Sockets] ConnectionWrite (send ()). ERROR [08S01] [Microsoft] [Controlador ODBC SQL Server] [TCP / IP Sockets] Error de red general. Consulte la documentación de su red. "}

Sin embargo, si ejecuto mi código sin una declaración preparada, lo que significa:

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

Todo funciona a la perfección.

¿Tal vez está relacionado con el hecho de que tengo un signo @ en el valor parametrizado? Tiendo a pensar que no soy el primero que intenta crear una declaración preparada con una dirección de correo electrónico ...

¡No tengo idea de lo que está mal! Otras declaraciones preparadas funcionan normalmente ...

¿Puedes por favor ayudarme? :) Gracias Nili

Respuestas a la pregunta(3)

Su respuesta a la pregunta