Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Vorbereitete C#-Anweisungen - @-Zeichen (at / Strudel-Zeichen) Abfragen

Tatsächlich hat ODBC einige Probleme mit der Unterstützung benannter Parameter. Eine gewisse Verwendung benannter Parameter ist jedoch möglich.

In Ihrem Fall funktioniert beispielsweise die folgende 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;

Eine schwierigere Situation ist, wenn Sie keine eindeutige Übereinstimmung für den Parameter haben, z. B. USER_ID =?; z. B. wenn Sie IN verwenden möchten Operator im WHERE Klausel.

Dann würde die folgende Syntax funktionieren:

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;

Bitte beachten Sie die Verwendung von ? (Fragezeichen) statt @ (At-Zeichen) innerhalb des Parameternamens. Beachten Sie jedoch, dass die Ersetzung von Parameterwerten in diesem Fall nichts mit ihren Namen zu tun hat, sondern nur mit ihrer Reihenfolge in der Parametersammlung.

Ich hoffe, das hilft :-)