SqlParameter的size属性
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指定错误,则可能出现无法预知的错误。