小弟最近做一个小demo 底层使用entity framework + sqlite
数据库中有两条数据:
---ID--- ---姓名---
1 程杰
2 平板电脑
问题来了
在代码里对姓名(Nvarchar类型)进行模糊查询的时候(Contains),关键代码如下:
DataContext source = new DataContext();
var res = source.User.where(p=>p.姓名.Contains(name));
当name = "程"的时候查出的数据里尽然包含"平板电脑",这个问题困扰了好几天了,希望各位给我一点思路
我是做C++开发的,不太懂你的代码,我只能猜测一下,可能是由于汉字编码引起的,我在C/C++中使用sqlite时,由于sqlite内部的文本是以UTF8编码的,所以查询时如果SQL里有汉字,需要把SQL转成UTF8编码再查询。
感觉你这个是把所有记录都查出来了而不是你说的多了一条数据,检查一下程序吧:
var res = source.where(p=>p.姓名.Contains(name));
这样写应该是有问题的,DataContext里是不是有个集合啊,应该对这个集合用where语句吧