首页 新闻 会员 周边

求救 sqlite 查询汉字问题 -----折腾好久了 依然无法解决

0
悬赏园豆:50 [已解决问题] 解决于 2012-02-16 21:17

小弟最近做一个小demo 底层使用entity framework + sqlite

数据库中有两条数据:
---ID--- ---姓名---
1 程杰
2 平板电脑

问题来了
在代码里对姓名(Nvarchar类型)进行模糊查询的时候(Contains),关键代码如下:

DataContext source = new DataContext();
var res = source.User.where(p=>p.姓名.Contains(name));

当name = "程"的时候查出的数据里尽然包含"平板电脑",这个问题困扰了好几天了,希望各位给我一点思路

程杰的主页 程杰 | 初学一级 | 园豆:92
提问于:2011-07-16 23:58
< >
分享
最佳答案
0

我是做C++开发的,不太懂你的代码,我只能猜测一下,可能是由于汉字编码引起的,我在C/C++中使用sqlite时,由于sqlite内部的文本是以UTF8编码的,所以查询时如果SQL里有汉字,需要把SQL转成UTF8编码再查询。

收获园豆:50
达叔 | 菜鸟二级 |园豆:470 | 2011-07-17 10:35
您好 请问是把sql里的汉字转成uft8的编码再进行查询是吗?
程杰 | 园豆:92 (初学一级) | 2011-07-17 12:40
是的,把汉字转成UTF8编码试试。
达叔 | 园豆:470 (菜鸟二级) | 2011-07-17 14:03
其他回答(1)
0

感觉你这个是把所有记录都查出来了而不是你说的多了一条数据,检查一下程序吧:

var res = source.where(p=>p.姓名.Contains(name));

这样写应该是有问题的,DataContext里是不是有个集合啊,应该对这个集合用where语句吧

artwl | 园豆:16736 (专家六级) | 2011-07-17 08:46
不好意思 这个是笔误 现已改正!
支持(0) 反对(0) 程杰 | 园豆:92 (初学一级) | 2011-07-17 10:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册