Установлено ли для .Value
значение null
для любого из параметров? Если так, они не отправлены. Попробуйте:
cmdExecuteReader.Parameters.AddWithValue(param.ParameterName,
param.Value ?? DBNull.Value);
(обратите внимание на объединение нулей с DBNull.Value
)
Также обратите внимание, что AddWithValue
может повлиять на повторное использование вашего плана запросов, так как (для строк и т. Д.) Он использует длину значения . Если вам нужна максимальная производительность, лучше настроить параметр вручную с определенными размерами.
Также обратите внимание, что потенциально некоторые параметры во входящем списке могут быть ввод-вывод, вывод или результат. Я был бы очень соблазн заменить что-то более похожее на:
SqlParameter newParam = cmdExecuteReader.Parameters.Add(
param.ParameterName, param.SqlDbType, param.Size);
newParam.Value = param.Value ?? DBNull.Value;
newParam.Direction = param.Direction;