使用SqlParameter時引數為什麼要設定長度

2021-09-28 20:55:47 字數 662 閱讀 6099

sqlparameter的作用是用來傳參,以及防止sql語句注入的。

以前在連線資料庫時,我都是像這樣做的。new sqlparameter("@name",name)

//d層**

public class dao

public datatable selectbyname(string name)

;dt = sqlhelper.executequerymodel(cmdtext, para, commandtype.storedprocedure);

return dt;

}

後來,學習到另外一種sqlparameter的方法。

sqlparameter para = new sqlparameter ;

para[0].value=name;

這樣寫看似是麻煩了,將一條語句就可以寫完的步驟,現在需要兩條語句。但是卻提高了計算機執行的速率。

在沒有設定傳入引數的長度的前提下,假如每次傳入的name長度不同,那麼執行sql語句時每次都會重新生成新的執行計畫,從而浪費資料庫執行時間。而如果@name的長度設定為固定值,那麼每次都會執行同乙個sql計畫。

如果是int、float、bigint,datetime之類的引數,可以不用指定size屬性。

動態新增SqlParameter

方法一 動態向sqlparameter 裡新增相應引數,方法如下 先定義乙個 list,然後再往list裡面新增sqlparameter物件,然後將list轉為sqlparameter陣列即可 list ilist new list ilist.add new sqlparameter param1...

動態新增SqlParameter

方法一 動態向sqlparameter 裡新增相應引數,方法如下 先定義乙個list,然後再往list裡面新增sqlparameter物件,然後將list轉為sqlparameter陣列即可 listilist new list ilist.add new sqlparameter param1 1...

Sqlparameter防SQL注入

隨著b s 模式應用開發的發展,使用這種模式編寫應用程式的程式設計師也越來越多。但是由於這個行業的入門門檻不高,程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫 的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料庫查詢 根據程式返回的結果,獲得...