过滤.net中多个表的数据

时间:2013-01-23 06:44:34

标签: .net adapter

我的数据库中有4个表,即餐馆,美食,设施,菜肴。我创建了一个表适配器,它返回这些表中的数据。现在我必须根据用户选择的菜肴,设施或菜肴过滤数据,并返回由此产生的餐厅。这是我的疑问:

    public string alldata(string location, string cuisines, string facility)
    {
        location = location.Replace('|', ',');
        facility = facility.Replace('|', ',');
        cuisines = cuisines.Replace('|', ',');
        string loc; string data = null; int id;
        DataSet3.DataTable1DataTable all = getall.GetAllData();

        IEnumerable<DataRow> query = from resturants in all.AsEnumerable()

                                     where ((location.Contains(resturants.City)) && (facility.Contains(resturants.FacilityName) && (cuisines.Contains(resturants.Type))))
                                     select resturants;
        foreach (DataSet3.DataTable1Row item in query)
        {
            name = item.Name;
            loc = item.Location;

            id = item.RestaurantID;
            data += name + "%" + loc +"%"+id+ "?";
        }
        return data; 


    }

此查询返回重复的条目,并且在选择中不应用AND。我被卡住了。请帮帮我。

1 个答案:

答案 0 :(得分:0)

IEnumerable<DataRow> query =    (from resturants in all.AsEnumerable()

                                         where ((location.Contains(resturants.City)) && (facility.Contains(resturants.FacilityName) && (cuisines.Contains(resturants.Type))))
                                         select resturants).Distinct()

你可以使用Distinct()运算符在Linq中获取不同的记录