Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

C# Подготвени изрази - заявки със знак @ (при / знак за щрудел).

Наистина ODBC има своя дял от проблемите с поддържането на именувани параметри. Възможно е обаче известно използване на именувани параметри.

Например във вашия случай работи следният синтаксис:

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

По-сложна ситуация е, когато нямате уникално съвпадение за параметър като USER_ID =?; напр., когато искате да използвате IN оператор в WHERE клауза.

Тогава следният синтаксис ще свърши работа:

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;

Моля, обърнете внимание на използването на ? (въпросителен знак) вместо @ (при знак) в името на параметъра. Имайте предвид обаче, че заместването на стойностите на параметрите в този случай няма нищо общо с имената им, а само с реда им в колекцията от параметри.

Надявам се това да помогне :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявката за транспониране създава възли (SQL Server 2008)

  2. Няколко стойности на колони в един ред

  3. Скриване на ред с всички нулеви стойности с помощта на Dynamic Pivot

  4. Използвайте IDENT_CURRENT() за връщане на текущата стойност на самоличността в колона за самоличност в SQL Server

  5. Динамична въртяща се таблица в SQL Server