我正在尝试在单词中获取包含单个单词的数据。如下面的查询。
List<Models.tbluser> memberslist = new List<Models.tbluser>();
var obct = (from memlist in objcontext.tblusers
where memlist.logname.Contains(member)
select new
{
userid = memlist.userid,
logname = memlist.logname,
decription = memlist.description
}).ToList();
foreach (var item in obct)
{
memberslist.Add(new tbluser
{
userid = item.userid,
logname = item.logname,
description = item.decription
});
}
return Json(memberslist);
但是我的问题是我需要搜索区分大小写。
例如
如果我使用'a'搜索,我需要获取管理员,管理员,用户数据等数据。
但我没有得到所有这些,因为我正在使用Contains()方法进行搜索。请让我知道如何获得所有值,或者搜索值也区分大小写。
答案 0 :(得分:3)
将您的位置条件更改为:
memlist.logname.ToUpper().Contains(member.ToUpper())
作为旁注,您可以稍微缩短查询(您不需要创建中间列表):
var memberslist = objcontext.tblusers
.Where(x => x.logname.ToUpper().Contains(member.ToUpper())
.AsEnumerable()
.Select(x => new tbluser
{
userid = x.userid,
logname = x.logname,
decription = x.description
})
.ToList();
return Json(memberslist);
答案 1 :(得分:1)
使用ToLower()
或ToUpper()
检查条件时,您可以将其更改为降低或高级大小写:
var obct = (from memlist in objcontext.tblusers
where memlist.logname.ToLower().Contains(member.ToLower())
select new
{
userid = memlist.userid,
logname = memlist.logname,
decription = memlist.description
}).ToList();