我试图删除一个给出一列值的行,但它只在我给出完整值时删除(即name column = sam jack)然后删除它我必须输入sam jack。 所以我试图使用%运算符,但不知道如何将它放在查询中。 这是我的代码:
command.CommandText = "DELETE FROM dbo.workers WHERE Name like @name" + "%";
答案 0 :(得分:5)
你做错了。
command.CommandText = "DELETE FROM dbo.workers WHERE Name like @name";
command.Parameters.AddWithValue("@name","%" + searchString + "%");
或者,如果您只想删除字符串的开头,请不要先使用%
;
command.Parameters.AddWithValue("@name", searchString + "%");
答案 1 :(得分:2)
您可以在宿主语言中连接%
和参数值,也可以在SQL中执行:
command.CommandText = "DELETE FROM dbo.workers WHERE Name like @name+'%'";
在SQL Server 2012中,您可以使用CONCAT
更明确:
command.CommandText = "DELETE FROM dbo.workers WHERE Name like CONCAT(@name, '%')";