我有一个 SqlCommand
,我想对其 CommandType = Text
调用 Prepare()
(它不能 是一个存储过程)。
为了做到这一点,我需要将参数的 Size
属性设置为非零,否则会引发异常。将所有参数的 Size
设置为最大可能大小是否会产生负面影响,即使实际值的大小永远不会接近该值?有更好的方法吗?
最佳答案
我认为这样做唯一潜在的负面影响是参数的内存分配成本。
由于您正在调用“Prepare()”,我猜测您计划对同一个 SqlConnection 多次使用 SqlCommand,这表明可能会使用它的离散代码部分(如果连接关闭了很长时间)准备好的命令,下次使用时必须将命令文本重新传输到服务器)。
如果您知道参数的性质,那么您似乎可能对它们的潜在大小有所了解。如果没有,那么我真的不知道你有什么选择,而不是为每个声明一个相当大的大小 - 大到足以容纳大多数/任何潜在值。
关于c# - SqlParameter Size - 设置为最大大小的负面影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/139971/