Dot-Net

SqlParameter 名稱前是否需要添加@?

  • April 20, 2012

在我們的一個應用程序中,參數以這種方式傳遞給儲存過程

Dim parm As New SqlParameter("searchText", SqlDbType.VarChar)
parm.Direction = ParameterDirection.Input
parm.Size = 50
parm.Value="test"

cmd.Parameters.Add(parm)

並且該過程包含一個參數@searchText

即程式碼傳遞的參數名是searchText,儲存過程中的參數名是@searchText

但它工作正常,我總是得到所需的結果。

所以我的問題是這樣的,所以不需要在參數之前指定**@?是否會附加@**,任何人都可以為此給出答案。

根據文件,名稱必須以@

ParameterName 以@paramname 的形式指定。

根據原始碼(查看SqlCommandSqlParameter.ParameterNameFixed在參考源中)@,如果需要,會自動添加一個。

所以是的,它有效,但它是一個未記錄的功能。最佳實踐建議您不要依賴此方法,而是手動在參數名稱前加上@.

引用自:https://stackoverflow.com/questions/10245510