【发布时间】:2014-04-10 19:22:02
【问题描述】:
编辑:代码工作正常,这是另一个错误。
我在创建的departmentList 中注释掉了//department.IdAgency = reader.GetByte(2); 行。当我删除 // 时,IQueryable<string> 和 .Where 工作正常。给您带来的不便敬请谅解!
static List<Department> CreateDepartmentList(IDataReader reader)
{
List<Department> departmentList = new List<Department>();
Department department = null;
while (reader.Read())
{
department = new Department();
department.Id = reader.GetByte(0);
department.Name = reader.GetString(1);
//department.IdAgency = reader.GetByte(2);
if (!reader.IsDBNull(3))
{ department.IdTalkGroup = reader.GetInt16(3); }
departmentList.Add(department);
}
return departmentList;
}
原问题:
我有一个IQueryable<string> 查询,它有效。但是如何使用.Where?
IQueryable<string> query = departmentList.AsQueryable()
.OrderBy(x => x.Name)
.Select(x => x.Name);
这个我试过了,还是不行:
IQueryable<string> query = departmentList.AsQueryable()
.OrderBy(x => x.Name)
.Where(x => x.IdAgency == idAgencySelected[0])
.Select(x => x.Name);
【问题讨论】:
-
通常,where 子句位于排序之前。但是“不起作用”是什么意思?
-
我尝试在 OrderBy 之前插入 Where,结果相同。当我使用 Where 时,我得到一个空列表。我检查了 x.IdAgency 是否包含正确的号码。
-
这仍然没有回答“不起作用”。
-
我的意思是“不起作用”。我的 DropDownList 中的结果是空的。当我不使用 Where 时,DropDownList 包含数据库表中的所有内容。我希望你能理解我。
-
是的,所以在你的问题中写下这个而不是不起作用,它会帮助人们帮助你;)现在,什么是 idAgencySelected,在调试时,
idAgencySelected[0]中有什么?您的数据中有具有该值的东西吗?
标签: c# linq lambda iqueryable