小弟最近做一個小demo 底層使用entity framework + sqlite數(shù)據(jù)庫中有兩條數(shù)據(jù):---ID--- ---姓名---1 程杰2 平板電腦問題來了在代碼里對姓名(Nvarchar類型)進行模糊查詢的時候(Contains),關(guān)鍵代碼如下:DataContext source = new DataContext();var res = source.User.where(p=>p.姓名.Contains(name));當(dāng)name = "程"的時候查出的數(shù)據(jù)里盡然包含"平板電腦",這個問題困擾了好幾天了,希望各位給我一點思路
2 回答

猛跑小豬
TA貢獻1858條經(jīng)驗 獲得超8個贊
我是做C++開發(fā)的,不太懂你的代碼,我只能猜測一下,可能是由于漢字編碼引起的,我在C/C++中使用sqlite時,由于sqlite內(nèi)部的文本是以UTF8編碼的,所以查詢時如果SQL里有漢字,需要把SQL轉(zhuǎn)成UTF8編碼再查詢。

白衣染霜花
TA貢獻1796條經(jīng)驗 獲得超10個贊
感覺你這個是把所有記錄都查出來了而不是你說的多了一條數(shù)據(jù),檢查一下程序吧:
var res = source.where(p=>p.姓名.Contains(name));
這樣寫應(yīng)該是有問題的,DataContext里是不是有個集合啊,應(yīng)該對這個集合用where語句吧
- 2 回答
- 0 關(guān)注
- 391 瀏覽
添加回答
舉報
0/150
提交
取消