ODBC har faktiskt sin del av problem med att stödja namngivna parametrar. Viss användning av namngivna parametrar är dock möjlig.
Till exempel, i ditt fall fungerar följande syntax:
OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
cmd.Parameters.Add("USER_ID", OdbcType.VarChar, 250).Value = email;
En svårare situation är när du inte har en unik matchning för parametern som USER_ID =?; t.ex. när du vill använda IN operatorn i WHERE klausul.
Då skulle följande syntax göra 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;
Observera användningen av ? (frågetecken) istället för @ (vid tecken) i parameternamnet. Observera dock att ersättning av parametrars värden i det här fallet inte har något att göra med deras namn, utan bara med deras ordning med parametrarnas samling.
Jag hoppas att detta hjälper :-)