Кроме того факта, что вы не добавляете параметр обратно в команду, у вас также есть список строк в качестве значения параметра.Ваше наименование заставляет меня поверить, что каждый элемент в списке является параметром.Как сейчас выглядит ваш код, вы просто создаете один параметр (без имени).
Вы хотите что-то вроде этого (за исключением того, что мы не знаем имен параметров):
foreach(string value in ParamValues)
{
cmd.Parameters.AddWithValue(/*ParamName*/, value);
}
Если это не так, и вы хотите передать список строк в качестве значения для одного параметра, тогда этот вопрос более сложный, и вам нужно уточнить.