I have a List<int> whose values I want to use inside IN() clause in my query.
I have read many similar post but none of them worked for me yet.
Let's say my table T is:
Id1 (int) | Id2(int)
Query:
Select Id1 
From T
where Id2 in (5,7,9,11)
List:
List<int> ls = new List<int>();
ls.add(5);
ls.add(7);
ls.add(9);
ls.add(11);
Now, how to populate this list in my query as no of integers?
Tried so far:
1)
string ls = string.Join(",", Id2.ToArray());
 string getId1 = "select Id1 from T where Id2 in (@ls)";
  cmd = new SqlCommand(getId1, con);
  cmd.Parameters.Add(new SqlParameter("@ls", ls));
Error:
Conversion failed when converting the nvarchar value '5,7,9,11' to data type int.
2)
 var ls = "("
       + String.Join(",", Id2.Select(x => x.ToString()).ToArray())
       + ")";
  string getId1 = "select Id1 from T where Id2 in (@ls)";
  cmd = new SqlCommand(getId1, con);
  cmd.Parameters.Add(new SqlParameter("@ls", ls));
Error:
Conversion failed when converting the nvarchar value '(5,7,9,11)' to data type int.
Note : I'll prefer the answer without using LINQ unless it's only possible with LINQ
 
     
    