ODBC heeft inderdaad problemen met het ondersteunen van benoemde parameters. Bepaald gebruik van benoemde parameters is echter mogelijk.
In uw geval werkt bijvoorbeeld de volgende syntaxis:
OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
cmd.Parameters.Add("USER_ID", OdbcType.VarChar, 250).Value = email;
Een lastiger situatie is wanneer je geen unieke match hebt voor de parameter zoals USER_ID =?; bijvoorbeeld wanneer u de IN . wilt gebruiken operator in de WHERE clausule.
Dan zou de volgende syntaxis het werk doen:
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;
Let op het gebruik van ? (vraagteken) in plaats van @ (at-teken) binnen de parameternaam. Merk echter op dat de vervanging van de waarden van parameters in dit geval niets te maken heeft met hun namen, maar alleen met hun volgorde met de parameterverzameling.
Ik hoop dat dit helpt :-)