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