Se hai la query in una variabile (non in una stored procedure) e non hai un'enorme quantità di ID, puoi creare il tuo IN. Non ho testato la velocità di questo approccio.
Questo codice non verrà compilato, è solo per darti un'idea.
query = "SELECT * FROM table WHERE col IN ("
For t = 0 TO x.Length-1
If t > 0 Then query &= ","
query &= "@var" & t
Next
query &= ")"
...
For t = 0 TO x.Length-1
cmd.Parameters.Add("@var" & t, SqlDbType.Int).Value = x(t)
Next