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