sql >> Database teknologi >  >> RDS >> Sqlserver

C# Prepared Statements - @ sign (at / strudel sign) forespørgsler

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 :-)



  1. Sådan kalder du en pl/sql anonym blok fra en pl/sql anonym blok

  2. Inspicering af slutningen af ​​en lang variabel værdi i VBA

  3. MySQL:Indsæt værdier fra en anden tabel i en kolonne

  4. Opret CLOB fra lang streng ved hjælp af JDBC