sql >> Database >  >> RDS >> Sqlserver

C# Voorbereide verklaringen - vragen met @-teken (at / strudelteken)

ODBC heeft inderdaad problemen met het ondersteunen van benoemde parameters. Bepaald gebruik van benoemde parameters is echter mogelijk.

In uw geval werkt bijvoorbeeld de volgende syntaxis:

OdbcCommand cmd = sql.CreateCommand();
cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
cmd.Parameters.Add("USER_ID", OdbcType.VarChar, 250).Value = email;

Een lastiger situatie is wanneer je geen unieke match hebt voor de parameter zoals USER_ID =?; bijvoorbeeld wanneer u de IN . wilt gebruiken operator in de WHERE clausule.

Dan zou de volgende syntaxis het werk doen:

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;

Let op het gebruik van ? (vraagteken) in plaats van @ (at-teken) binnen de parameternaam. Merk echter op dat de vervanging van de waarden van parameters in dit geval niets te maken heeft met hun namen, maar alleen met hun volgorde met de parameterverzameling.

Ik hoop dat dit helpt :-)



  1. Maak verbinding met MSSQL-database met Flask-SQLAlchemy

  2. Producten modelleren met enorm verschillende sets van informatie die u moet weten en deze koppelen aan regelitems?

  3. De grootte van de PostgreSQL-database is kleiner na back-up/laden op Heroku

  4. Entity Framework:hoe een aantal gerelateerde tabellen in een database opvragen en een enkele reis maken?