代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

在C“枚举未产生结果”中使用查询语法时。如何检索输出

  •  1
  • Shantanu Gupta  · 技术社区  · 15 年前

    我创建这个查询是为了从数据库中获取一些结果。 Here is my table structure .

    到底发生了什么。

    表1中的DTmapGuestDepartment

    DTDepartment如表2所示

    正在使用

        var dept_list=  from map in DtMapGuestDepartment.AsEnumerable()
                        where map.Field<Nullable<long>>("GUEST_ID") == DRowGuestPI.Field<Nullable<long>>("PK_GUEST_ID")
                        join 
                        dept in DtDepartment.AsEnumerable()
                        on map.Field<Nullable<long>>("DEPARTMENT_ID") equals dept.Field<Nullable<long>>("DEPARTMENT_ID")
                        select dept.Field<string>("DEPARTMENT_ID");
    

    我正在执行此查询 数据表并期望它返回我 DATABATE。

    在这里,我想从表1中选择不同的部门,这将是我的下一个任务。如果可能的话,也请回答这个问题。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Amy B    15 年前

    将查询拆分为多个部分,并查看哪个集合没有元素。

    var mapList = DtMapGuestDepartment.AsEnumerable().ToList();
    var deptList = DtDepartment.AsEnumerable().ToList();
    
    var queryResult1 = (
      from map in mapList
      where map.Field<Nullable<long>>("GUEST_ID") ==
        DRowGuestPI.Field<Nullable<long>>("PK_GUEST_ID") 
      select map
    ).ToList();
    
    var queryResult2 = (
      from map in queryResult1
      join dept in deptList
        on map.Field<Nullable<long>>("DEPARTMENT_ID")
        equals dept.Field<Nullable<long>>("DEPARTMENT_ID") 
      select dept.Field<string>("DEPARTMENT_ID")
    ).ToList();
    
    推荐文章