Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment passer sqlparameter à IN() ?

Vous devez créer un paramètre pour chaque valeur que vous voulez dans le IN clause.

Le SQL doit ressembler à ceci :

SELECT userId, username 
FROM Users 
WHERE userId IN (@UserId1, @UserId2, @UserId3, ...) 

Vous devez donc créer les paramètres et le IN clause dans le foreach boucle.
Quelque chose comme ça (hors de ma tête, non testé) :

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++;
}