Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como passar sqlparameter para IN ()?


Você precisa criar um parâmetro para cada valor que deseja no IN cláusula.

O SQL precisa ficar assim:
SELECT userId, username 
FROM Users 
WHERE userId IN (@UserId1, @UserId2, @UserId3, ...) 

Então você precisa criar os parâmetros e o IN cláusula no foreach loop.
Algo assim (fora da minha cabeça, não testado):
StringBuilder sb = new StringBuilder();
int i = 1;

foreach (User user in UserList)
{
    // IN clause
    sb.Append("@UserId" + i.ToString() + ",");

    // parameter
    YourCommand.Parameters.AddWithValue("@UserId" + i.ToString(), user.UserId);

    i++;
}