ODBC har faktisk sin andel af problemer med at understøtte navngivne parametre. Viss brug af navngivne parametre er dog mulig.
For eksempel virker følgende syntaks i dit tilfælde:
OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
cmd.Parameters.Add("USER_ID", OdbcType.VarChar, 250).Value = email;
Mere vanskelig situation er, når du ikke har et unikt match for parameteren som USER_ID =?; f.eks. når du vil bruge IN operatør i WHERE klausul.
Så ville følgende syntaks gøre jobbet:
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;
Bemærk venligst brugen af ? (spørgsmålstegn) i stedet for @ (ved fortegn) i parameternavnet. Bemærk dog, at substitution af parametrenes værdier i dette tilfælde ikke har noget at gøre med deres navne, men kun med deres rækkefølge med parametresamlingen.
Jeg håber dette hjælper :-)