天天看點

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指定錯誤,則可能出現無法預知的錯誤。