0
我在我的数据库中有4个表格,即餐厅,美食,设施,菜肴。我创建了一个表格适配器,它从这些表格返回数据。现在我必须根据用户对美食,设施或菜肴的选择过滤数据,并返回最终的餐厅。这里是我的查询:在.net中过滤来自多个表的数据
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;
}
此查询返回重复条目,它不适用于选择。我被卡住了。请帮帮我。
IEnumerable的查询=(从resturants (resturants.FacilityName)&& cuisines.Contains(resturants.Type))。Distinct()...用一个括号尝试你的语句可能会有帮助吗? –
user1974729
不,它仍然无法正常工作。重复的条目没有出现,但过滤不正确,因为AND条件工作不正常 –
AND正在工作。告诉我,当我通过一个以上的设施时,我怎么才能得到正确的结果。如果我通过两个设施,结果应该包含两个设施不只是一个。我怎样才能做到这一点? –