天天看点

SqlParameter的size属性

如果未在size参数中显式设置Size,则从dbType参数的值推断出该大小。

如果你认为上面的推断出该大小是指从SqlDbType类型推断,那你就错了,它实际上是从你传过来的参数的值来推断的,比如传递过来的值是"shengzhen",则size值为9,"shanghai",则size值为8。

那么,不同的size值会引发什么样的结果呢?size的值不同时,会导致数据库的执行计划不会重用,这样就会每次执行sql的时候重新生成新的执行计划,而浪费数据库执行时间。

实例化SqlParameter时,如果是字符型,一定要指定size属性

例如

new SqlParameter("@address",

SqlDbType.Varchar, 4000)

如果是Int、Float、Bigint,DateTime之类的参数,可以不用指定size属性。  但如果size指定错误,则可能出现无法预知的错误。