日期:2014-05-17  浏览次数:20775 次

sqlserver c# 模糊查询问题
发现奇怪的问题
通过c#连接sqlserver,个别字不能模糊查询
查询"*** where a like '%孙%',查询不到

查询"*** where a like '%李%',能够返回记录

在enterprisemanager查询都没有问题,都能返回数据
用c#查询就有些能查到,有些查不到?

------解决方案--------------------
where a like N'%孙%'这样呢?
------解决方案--------------------
你的a字段类型为nchar/nvarchar,而你某些数据存进去的时候没有带上N比如
insert into tb(a) values('孙')
insert into tb(a) values(N'李')
这样孙就找不出来,说白了是类型转换的问题
------解决方案--------------------
引用:
OK,可以了,为什么呢?

Quote: 引用:

where a like N'%孙%'这样呢?


这个加了N就是unicode,双字节,因为你的a字段应该是nvarchar的,所以必须要匹配