sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo pasar sqlparameter a IN()?

Tienes que crear un parámetro para cada valor que quieras en el IN cláusula.

El SQL debe tener este aspecto:

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

Entonces necesitas crear los parámetros y el IN cláusula en el foreach bucle.
Algo como esto (fuera de mi cabeza, sin probar):

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