Ответ 1
Используйте Add
, если вы хотите сделать все явное с немного более эффективной работой. Используйте AddWithValue
, если вы ленивы. AddWithValue
будет выводить тип параметра этого значения, поэтому убедитесь, что он правильный тип. Вы должны, например, разобрать a string
до int
, если это правильный тип.
Есть одна причина избежать Add
, если ваш тип параметра int
, вы должны быть осторожны с перегрузкой которая принимает имя параметра и объект с тех пор другая перегрузка выбрана с помощью SqlDbType
-enum.
Из примечания:
Соблюдайте осторожность при использовании этой перегрузки Метод SqlParameterCollection.Add для указания значений целочисленных параметров. Поскольку эта перегрузка принимает значение типа Object, вы должны преобразовать целочисленное значение для типа объекта, когда значение равно нулю, поскольку следующий пример С#.
parameters.Add("@pname", Convert.ToInt32(0));
Если вы не выполните это преобразование, компилятор предполагает, что вы пытаетесь вызвать Перегрузка SqlParameterCollection.Add(строка, SqlDbType).