sql >> Databasteknik >  >> RDS >> Sqlserver

C# Prepared Statements - @ sign (at / strudel sign) frågor

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



  1. hur man förhindrar att man får fel ID

  2. Distinkt en kolumn i två tabeller MS SQL Server 2008

  3. Hur man söker efter datumfält för en sträng med JPA Criteria API

  4. Hierarkisk rekursionsmeny med PHP/MySQL