実際、ODBC には、名前付きパラメーターのサポートに関する問題があります。ただし、名前付きパラメーターの特定の使用法は可能です。
たとえば、あなたの場合、次の構文が機能します:
OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
cmd.Parameters.Add("USER_ID", OdbcType.VarChar, 250).Value = email;
さらにトリッキーな状況は、USER_ID =?; のようなパラメーターに一意の一致がない場合です。たとえば、IN を使用する場合 WHERE の演算子
次に、次の構文で作業を行います:
OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID IN (?, ?)";
cmd.Parameters.Add("?ID1", OdbcType.VarChar, 250).Value = email1;
cmd.Parameters.Add("?ID2", OdbcType.VarChar, 250).Value = email2;
? の使い方に注意してください @ の代わりに (疑問符) (アットマーク) パラメータ名内。ただし、この場合のパラメーターの値の置換は、名前とは関係なく、パラメーター コレクションでの順序とのみ関係があることに注意してください。
これがお役に立てば幸いです:-)