我需要根据对一组记录的“喜欢”匹配来获取记录,
我使用的以下查询不起作用。有谁知道查询有什么问题吗?
sqlCommand.CommandText =String.Format("SELECT * FROM Customer" +
" WHERE (Name like @Name)","'%" +searchString.Trim()+"%'");
sqlCommand.Parameters.AddWithValue("Name", searchString);
此查询未获取所需的记录。
运行上述代码段时出现以下错误:
Must declare the scalar variable "@Name".
最佳答案
这样会发生什么?
sqlCommand.CommandText = "SELECT * FROM Customer WHERE Name LIKE @Name;";
sqlCommand.Parameters.AddWithValue("@Name", "%" + searchString + "%");
您也可以按如下方式编码,以避免首先出现所有通配符格式:
sqlCommand.CommandText = "SELECT * FROM Customer WHERE CHARINDEX(@Name, Name) > 0;";
sqlCommand.Parameters.AddWithValue("@Name", searchString);
如果您要坚持以不安全的方式进行操作,至少将 searchString
中的任何单引号加倍,例如
searchString.Replace("'", "''")
关于c# - 如何使用 sql 参数进行选择查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10291417/