Существует несколько перегрузок для функции sqlcommand.Parameters.Add (...). Некоторые из них не принимают размер, а некоторые делают. Какие размеры установлены по умолчанию? Безопасно ли устанавливать размеры параметров? Это влияет на производительность?Размеры по умолчанию для параметров SQL в ADO.NET
ответ
От SqlParameter.Size Property DOCO
Если не установлен явно, размер выводится из фактического размера указанного значения параметра.
Там удивительный ответ Петр WOne на 293315, который описывает более подробно, что это на самом деле означает
можно послать параметр, который слишком велик для типа данных базы данных из кода .NET в SQL Server. Если вы зададите размер при создании параметра в вашем. Net-коде, это вызовет исключение, если значение будет отправлено слишком большим. Значит, вы скоро узнаете и не будете тратить время на вызов базы данных.
В качестве альтернативы вы можете установить максимальное количество символов для определенных текстовых полей. База данных может содержать имена до 400 символов, но вы хотите только varchar 100.
Параметр Свойство Nullable аналогично. Это необязательно, но если параметр не может быть нулевым в вызове sproc, что делает его недействительным в коде .Net, он скорее выявит проблему.
«Альтернативно, вы можете установить максимальное количество символов для определенных текстовых полей. База данных может разрешать имена последних 400 символов, но вы хотите только varchar 100. " - в этом случае, если вы передадите строку с более чем 100 символами (и меньше 400, чтобы она была принята БД), она будет обрезана, и вы можете потерять некоторые данные. – Roma
Спасибо. Ссылка, которую вы предоставили, была очень полезна. – Roma
Не беспокойтесь. Я узнал кое-что, прочитав объяснение Питера, поэтому я должен поблагодарить вас за задание вопроса :-) –