请教各位高手一个SQL Server 全文索引的问题,我的SQL语句中类似“WHERE CONTAINS([CustomerName],@customerName) ”,当参数@customerName中有括号、空格等特殊字符就会报语法错误,请问如何解决?
WHERE CONTAINS([CustomerName],@customerName)
过滤掉啊
请问如何“过滤掉啊”?
是将这些特殊字符替换成其他字符又能正确显示搜索结果吗?能否给个具体方案?谢谢!
看看有关SQL注入的问题
没理解您说的“SQL注入的问题”什么意思,我的代码是参数化的。
现在发现把关键词加个双引号好像可以不报错,但是觉得这不是好的方案,如果关键词中本身就有个双引号就又有麻烦了。是不是可通过修改SQL Server 的什么配置解决?
@C#开发人员: 你咋么参数化
@Yu:
using (SqlCommand sqlCommand = new SqlCommand(cmdText, sqlConnection)) { sqlCommand.Parameters.AddWithValue("@customerName", customerName);
@C#开发人员: 忽略我的问题
@Yu: 用户搜索的关键词中本来就会有一些特殊字符,这是正常的需求不是SQL注入。现在我要解决的问题是能正确搜索出匹配关键词的结果而不报语法错误。
@C#开发人员:
在里面加一对双引号
'"测试(北京)测试有限公司"'
@Yu: 这个方法上面已经提到了,不是理想的方案