sqlcommand.Parameters.Add(...)函数有多个重载。其中一些不需要指定参数大小,而另一些则需要。默认情况下设置了什么大小?不设置参数大小是否安全?它会影响性能吗?
sqlcommand.Parameters.Add(...)函数有多个重载。其中一些不需要指定参数大小,而另一些则需要。默认情况下设置了什么大小?不设置参数大小是否安全?它会影响性能吗?
来自SqlParameter.Size Property文档:
如果未明确设置,则大小将从指定参数值的实际大小推断出。
在293315上,Peter Wone有一个很棒的回复,更详细地描述了这实际上意味着什么。
在从.Net代码发送参数到SQL Server时,可能会发送超过数据库数据类型的参数。如果在创建参数时在您的.Net代码中设置大小,则如果发送了太大的值,将引发异常。因此,您将更早地知道并且不会浪费数据库调用。
或者,您可能希望为某些文本字段设置最大字符数。数据库可能允许400个字符的姓氏,但您只想要varchar 100。
参数Nullable属性类似。它是可选的,但是如果在sproc调用中参数不能为null,则在您的.Net代码中使其不可为空将更早地突出显示问题。