Linq 从两个不同的组框中的多个复选框中选择多个查询

Linq 从两个不同的组框中的多个复选框中选择多个查询,linq,select,checkbox,Linq,Select,Checkbox,我有两个分组框,一个用于所有类型的活动,另一个用于语言。 每个GroupBox都包含一系列复选框,这些复选框是使用循环从数据库中创建的 Tag=ID 文本=描述 现在,我想用这些作为过滤器,找出哪些人以所选语言(例如法语和英语的山地自行车和导游旅行)进行了所选活动。 所以我想要一个选择 表:TBL指南/TBL语言/TBL能力/TBL指南语言/TBL指南活动 tblGuides:ID/Name/FirstName/Address/。。。 t语言:ID/说明 TBL能力:ID/姓名/持续时间/免费

我有两个分组框,一个用于所有类型的活动,另一个用于语言。 每个GroupBox都包含一系列复选框,这些复选框是使用循环从数据库中创建的

Tag=ID 文本=描述

现在,我想用这些作为过滤器,找出哪些人以所选语言(例如法语和英语的山地自行车和导游旅行)进行了所选活动。 所以我想要一个选择

表:TBL指南/TBL语言/TBL能力/TBL指南语言/TBL指南活动


tblGuides:ID/Name/FirstName/Address/。。。 t语言:ID/说明 TBL能力:ID/姓名/持续时间/免费 tblGuidelanguages:GuideID/LanguageID tblGuideActivities:指南ID/活动ID

第一步:我列出两个清单,一个是选定的语言,一个是选定的活动

List<int> lstExcursionID = new List<int>();

foreach (Control oControl in sgbExcursion.Controls)
{
    if (oControl.GetType() == typeof(CheckBox))
    {
        CheckBox oCheckBox = (CheckBox)oControl;
        if (oCheckBox.Checked)
        {
            lstExcursionID.Add(int.Parse(oCheckBox.Tag.ToString()));
        }
    }
}
List lstsciptionid=new List();
foreach(sgbExcursion.Controls中的Control-oControl)
{
if(oControl.GetType()==typeof(复选框))
{
复选框oCheckBox=(复选框)oControl;
如果(oCheckBox.Checked)
{
添加(int.Parse(oCheckBox.Tag.ToString());
}
}
}
我现在有两个列表:lstVisitionID和lstLanguagesID

但是我怎样才能从数据库中获得正确的数据呢?我尝试了不同的LINQ查询,但它始终是一个OR选择。 有人能帮我找到正确的方向吗?
thx

您似乎想加入列表,但根据您的描述,我无法确定他们是否有您可以加入的内容

如果您展示输入数据的示例,将会有所帮助

更新:

这是我将如何尝试接近它的草稿-这应该可以找到所选语言中所选活动的指南名称/ID

var guide = from g in tblGuides
            join ga in tblGuideActivities on g.Id equals ga.GuideID
            join gl in tblGuideLanguages on g.ID equals gl.GuideID
            where ga.ActivityID == [selectedActivity]
            and gl.LanguageID == [selectedLanguage]
            select g.Name
您可以对每个活动/语言对执行这样的查询,这将为您提供一个指南列表,然后您可以从列表中选择不同的条目


它可能需要重构,因为在没有所有数据的情况下很难进行测试-希望这能有所帮助。

tblGuides:ID/Name/FirstName/Address/。。。t语言:ID/说明t活动:ID/名称/持续时间/免费TBLGUIDE语言:指南ID/语言ID TBLGUIDE活动:指南ID/活动ID