首页 新闻 会员 周边 捐助

sql server 全文索引搜索关键字中包含空格、括号报语法错误

-1
悬赏园豆:100 [已关闭问题] 关闭于 2015-01-24 13:45

请教各位高手一个SQL Server 全文索引的问题,我的SQL语句中类似“WHERE CONTAINS([CustomerName],@customerName) ”,当参数@customerName中有括号、空格等特殊字符就会报语法错误,请问如何解决?

 WHERE CONTAINS([CustomerName],@customerName) 

C#开发人员的主页 C#开发人员 | 初学一级 | 园豆:181
提问于:2015-01-15 12:57
< >
分享
所有回答(2)
0

过滤掉啊

PandaIT | 园豆:333 (菜鸟二级) | 2015-01-15 13:28

请问如何“过滤掉啊”?

是将这些特殊字符替换成其他字符又能正确显示搜索结果吗?能否给个具体方案?谢谢!

支持(0) 反对(0) C#开发人员 | 园豆:181 (初学一级) | 2015-01-15 16:31
0

看看有关SQL注入的问题

Yu | 园豆:12990 (专家六级) | 2015-01-15 15:37

没理解您说的“SQL注入的问题”什么意思,我的代码是参数化的。

现在发现把关键词加个双引号好像可以不报错,但是觉得这不是好的方案,如果关键词中本身就有个双引号就又有麻烦了。是不是可通过修改SQL Server 的什么配置解决?

支持(0) 反对(0) C#开发人员 | 园豆:181 (初学一级) | 2015-01-15 16:28

@C#开发人员: 你咋么参数化

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2015-01-15 16:33

@Yu: 

using (SqlCommand sqlCommand = new SqlCommand(cmdText, sqlConnection))
                {
                    sqlCommand.Parameters.AddWithValue("@customerName", customerName);
支持(0) 反对(0) C#开发人员 | 园豆:181 (初学一级) | 2015-01-15 17:00

@C#开发人员: 忽略我的问题

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2015-01-15 17:28

@Yu: 用户搜索的关键词中本来就会有一些特殊字符,这是正常的需求不是SQL注入。现在我要解决的问题是能正确搜索出匹配关键词的结果而不报语法错误。

支持(0) 反对(0) C#开发人员 | 园豆:181 (初学一级) | 2015-01-15 18:36

@C#开发人员:

在里面加一对双引号

'"测试(北京)测试有限公司"'

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2015-01-16 08:39

@Yu: 这个方法上面已经提到了,不是理想的方案

支持(0) 反对(0) C#开发人员 | 园豆:181 (初学一级) | 2015-01-16 09:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册