【发布时间】:2016-08-25 11:19:30
【问题描述】:
下拉列表中有几个项目,即
Apply
Orange
Grapes
Factory
我尝试用两个这样的 linq 查询填充下拉列表
if (!Page.IsPostBack)
{
if (Session["UserName"] == "admin")
{
//List<spadminlist_Result> admin = tea.spadminlist().ToList();
var admin=from ad in tea.tblReg
.Where((x=>x.Region).Contains("Factory"))
.GroupBy(x=>x.Region)
.Select(x=> new {Region=x.Key})
.ToList();
regiondrop.DataSource = admin;
regiondrop.DataTextField = "Region";
regiondrop.DataValueField = "Region";
regiondrop.DataBind();
Label4.Visible = false;
}
else
{
var list = tea.tblReg.AsEnumerable()
.Where(x => !x.Region.Any(char.IsDigit) && (x.Region != ""))
.GroupBy(x => x.Region)
.Select(x => new { Region = x.Key, Value = x.Key })
.ToList();
regiondrop.DataSource = list;
regiondrop.DataTextField = "Region";
regiondrop.DataValueField = "Region";
regiondrop.DataBind();
Label4.Visible = false;
}
}
现在当我尝试这条线时 //列表管理员 = tea.spadminlist().ToList(); 然后数据源显示空 其中作为 sp 返回值,即。工厂
所以我决定 qrite linq 查询,所以在编写 linq 查询之后
var admin=from ad in tea.tblReg
.Where((x=>x.Region).Contains("Factory"))
.GroupBy(x=>x.Region)
.Select(x=> new {Region=x.Key})
.ToList();
这显示一个错误
错误 3 查询正文必须以 select 子句或 group 子句结尾
如果角色不是管理员,我也不想显示工厂值,如果角色是管理员,那么我只想在下拉列表中显示值“工厂” 所以我如何在第二个 linq 查询中使用 not in 运算符,在第一个 LINQ 中使用 for in 运算符,但这显示了我上面提到的错误
【问题讨论】:
-
你能解释一下你想要达到的目标吗?
-
想实现管理员登录时只在下拉列表中显示出厂值,否则所有值都将显示在下拉列表中..
-
请编辑问题的名称以更好地适应问题 + 如果您可以从下面的问题中删除 cmets - 它们不会为未来的用户添加有用的信息
标签: c# linq notin in-operator