ADO.NET進行參數化時會自動將參數值包含在單引號中,除了特殊需求,最好不要本身手動添加單引號。ADO.NET中識別參數標識是使用符號@,若是在SQL語句中將參數標識放在單引號中,單引號中的參數標識只會被當成字符串!spa
因此要對LIKE語句進行參數化查詢時,就要先對參數值進行格式化,在傳參以前就設置好通配符,具體實現代碼以下:字符串
string strSqlCommandText = "SELECT Title FROM Article WHERE Title LIKE @Title"; SqlParameter parameter = new SqlParameter() { ParameterName = "@Title", Value = "%ASP.NET MVC%", SqlDbType = SqlDbType.NVarChar, Size = 50 };string
從上面的代碼中咱們能夠看到具體的變換有兩點,第一點是SQL語句中取消了通配符%而且參數標識沒有被單引號包含其中,第二點則是通配符直接放到了參數值中,這樣ADO.NET在進行參數化後所生成的SQL就徹底沒問題了,最終也能正確的查詢出結果。it