在SQL LIKE子句中使用SqlParameter时,可能会遇到参数化查询不起作用的问题。这是因为在SQL中,LIKE子句通常需要使用通配符(如%、_等)来进行模糊匹配。但是,如果在SqlParameter中直接使用通配符,它们可能会被转义或被误解释。
为了解决这个问题,可以使用以下方法:
string searchTerm = "search";
SqlParameter parameter = new SqlParameter("@searchTerm", SqlDbType.NVarChar);
parameter.Value = "%" + searchTerm + "%";
SELECT * FROM table WHERE CHARINDEX(@searchTerm, columnName) > 0
或者
SELECT * FROM table WHERE PATINDEX('%' + @searchTerm + '%', columnName) > 0
这样,就可以在SQL LIKE子句中使用SqlParameter,同时保持参数化查询的安全性和性能优势。
领取专属 10元无门槛券
手把手带您无忧上云