linq where 中文 条件查询不到

cwbcherish 2015-11-03 11:51:18
List<ECUser> _listDataEC2 = (from ec2 in _callECShop.ecs_user_address.Where(p => p.consignee ==“中国”)
select ec2).ToList();
1、字符串“中国”的条件 就是查询不到,要是用id查询可以查到,有中国的记录。而查询到的记录 中文 显示正常。
2、如果consignee 是英文情况,把条件改成 p.consignee ==“china”,就能查到记录。

对中文的查询条件 就是查不到记录。请大虾们指点????
...全文
3285 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜鸟的无助 2018-05-25
  • 打赏
  • 举报
回复
连接数据库字符串的编码有误,缺少字符的格式。添加 Charset=utf8 就行。
  • 打赏
  • 举报
回复
引用 5 楼 q107770540 的回复:
List<ECUser> _listDataEC2 = (from ec2 in _callECShop.ecs_user_address.Where(p =>user string.Equals(p.consignee,"中国",StringComparison.InvariantCultureIgnoreCase) ) select ec2).ToList();
正解!
qq_15148111 2017-05-27
  • 打赏
  • 举报
回复
List<ECUser> _listDataEC2 = (from ec2 in _callECShop.ecs_user_address.AsEnumerable().Where(p => p.consignee.trim() == "中国") select ec2).ToList();
confused_kitten 2015-12-30
  • 打赏
  • 举报
回复
p.consignee.equals(“中国”)试试
lvfeng_95 2015-12-04
  • 打赏
  • 举报
回复
那你试试contains 看看可以查询出来吗 如果可以查询出来 证明你的“中国”有空格
蝶恋花雨 2015-12-04
  • 打赏
  • 举报
回复
p.consignee ==“中国” =》 首先确定consignee 这个数据库字段里面有中国字样 然后用p.consignee.Contains(“中国”); 这样能检索到不,。
关於 2015-12-04
  • 打赏
  • 举报
回复
如果字段类型是nvarchar,服务器是不支持中文的就会有问题
正怒月神 2015-11-13
  • 打赏
  • 举报
回复
p.consignee这个字段在数据库 是 什么类型, 别使用 char
lovebaby 2015-11-09
  • 打赏
  • 举报
回复
引用 4 楼 shaoerbao 的回复:
数据库里查询出来再复制回去?
用profiler看一下实际生成的SQL语句,1楼已经告诉你方法了。
cwbcherish 2015-11-04
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
consignee 中文的时候 没有空格吧? 应该可以改成equals吧
空格去掉也不行。如果是英文都没有问题。我用另外建立一个数据集,把consignee==“中国”记录加入到另外一个数据集 就没有问题, 但,如果是大量数据的话 就会耗时间了。
BitCoffee 2015-11-04
  • 打赏
  • 举报
回复
1.是不是数据库中的存储的值前后有空格. List<ECUser> _listDataEC2 = (from ec2 in _callECShop.ecs_user_address.Where(p => p.consignee.Trim() ==“中国”) select ec2).ToList(); 2.按照2楼的查看下实际的sql语句或者在数据库管理器上,用sql语句能不能查询出来.有的时候,因为编码的问题,用中文查询时,需要加N,例如:select column from table where column = N'中国'
q107770540 2015-11-04
  • 打赏
  • 举报
回复
List<ECUser> _listDataEC2 = (from ec2 in _callECShop.ecs_user_address.Where(p =>user string.Equals(p.consignee,"中国",StringComparison.InvariantCultureIgnoreCase) ) select ec2).ToList();
exception92 2015-11-03
  • 打赏
  • 举报
回复
consignee 中文的时候 没有空格吧? 应该可以改成equals吧
  • 打赏
  • 举报
回复
http://www.cnblogs.com/kissdodog/p/3398523.html 先看下实际的sql是什么
runerback 2015-11-03
  • 打赏
  • 举报
回复
数据库里查询出来再复制回去?
cwbcherish 2015-11-03
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
consignee 中文的时候 没有空格吧? 应该可以改成equals吧
都用.trim() 试过 没用 并且还自己写了一个函数,想把他们化成 二进制,可惜 这里面 好像不支持 函数把,写进去 其它几个结果集都不显示了

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧