Используйте Add
, если вы хотите, чтобы все четко с немного больше работы. Используйте AddWithValue
, если вы ленивы. AddWithValue
будет выводить тип параметра его значения, поэтому убедитесь, что это правильный тип. Вы должны, например, разобрать string
до int
, если это правильный тип.
Существует одна причина, чтобы избежать Add
, если ваш тип параметра int
вы должны быть осторожны с overload that takes the parameter-name and an object с тех пор another overload is chosen with the SqlDbType
-enum.
От remarks:
Будьте осторожны при использовании этой перегрузки метода SqlParameterCollection.Add указать целые значения параметров. Поскольку эта перегрузка принимает значение типа Object, вы должны преобразовать интегральное значение в тип объекта, когда значение равно нулю, поскольку демонстрирует пример , следующий за C#.
parameters.Add("@pname", Convert.ToInt32(0));
Если вы не будете выполнять это преобразование, то компилятор предполагает, что вы пытаетесь вызвать перегрузку SqlParameterCollection.Add (строка, SqlDbType).
['cmd.Parameters.Add' устарел сейчас. Вместо этого используйте 'cmd.Parameters.AddWithValue' (http://stackoverflow.com/a/29554589/3936696) –