Подтвердить что ты не робот

Параметры SqlCommand Добавить или AddWithValue

Когда следует использовать Parameters. Add/AddWithValue? В следующем примере MSDN они используют Parameters.Add для int и Parameters.AddWithValue для string

command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;

command.Parameters.AddWithValue("@demographics", demoXml);

Что лучше всего использовать для datetime

4b9b3361

Ответ 1

Используйте Add, если вы хотите сделать все явное с немного более эффективной работой. Используйте AddWithValue, если вы ленивы. AddWithValue будет выводить тип параметра этого значения, поэтому убедитесь, что он правильный тип. Вы должны, например, разобрать a string до int, если это правильный тип.

Есть одна причина избежать Add, если ваш тип параметра int, вы должны быть осторожны с перегрузкой которая принимает имя параметра и объект с тех пор другая перегрузка выбрана с помощью SqlDbType -enum.

Из примечания:

Соблюдайте осторожность при использовании этой перегрузки Метод SqlParameterCollection.Add для указания значений целочисленных параметров. Поскольку эта перегрузка принимает значение типа Object, вы должны преобразовать целочисленное значение для типа объекта, когда значение равно нулю, поскольку следующий пример С#.

parameters.Add("@pname", Convert.ToInt32(0)); 

Если вы не выполните это преобразование, компилятор предполагает, что вы пытаетесь вызвать Перегрузка SqlParameterCollection.Add(строка, SqlDbType).