Det kan man (desværre) ikke. En SQL-parameter kan kun være en enkelt værdi, så du skal gøre:
WHERE buildingID IN (@buildingID1, @buildingID2, @buildingID3...)
Hvilket selvfølgelig kræver, at du ved, hvor mange bygnings-id'er der er, eller at du dynamisk konstruerer forespørgslen.
Som en løsning* har jeg gjort følgende:
WHERE buildingID IN (@buildingID)
command.CommandText = command.CommandText.Replace(
"@buildingID",
string.Join(buildingIDs.Select(b => b.ToString()), ",")
);
som vil erstatte teksten i udsagnet med tallene, og ender som noget i retning af:
WHERE buildingID IN (1,2,3,4)
- Bemærk, at dette nærmer sig en SQL-injektionssårbarhed, men da det er et int-array, er det sikkert. Vilkårlige strenge er ikke sikkert, men der er ingen måde at indlejre Sql-sætninger i et heltal (eller datetime, boolean osv.).