I am trying to pass this dynamically generated string (1,2,3,4) but I am getting the error:
Conversion failed when converting the nvarchar value '1, 2, 3, 4' to data type int
How can I fix this error?
public DataTable GetAll(int [] idArray)
{
DataTable dt = new DataTable();
var paramNames = Enumerable
.Range(0, idArray.Length)
.Select(index => $"@prm{index}")
.ToArray();
string query = $"SELECT link FROM Test WHERE id IN ({string.Join(",", paramNames)}) ORDER BY seq.Sequence";
try
{
using (SqlConnection conn = new SqlConnection(connStringUniApp))
{
conn.Open();
using (SqlCommand command = new SqlCommand(query, conn))
{
for (int i = 0; i < paramNames.Length; ++i)
{
command.Parameters.Add(new SqlParameter(paramNames[i], idArray[i]));
}
using (SqlDataReader rdr = command.ExecuteReader())
{
dt.Load(rdr);
}
command.Parameters.Clear();
}
return dt;
Console.Write(dt);
}
}
catch (Exception ex)
{
Console.Write(ex.ToString());
return dt;
}
}