我有一個datagridview,我想要獲得一個基於複選框值(ID保存在複選框標記中)的值的人員列表。這些複選框是由代碼構建,並添加到2個不同的groupboxes(sgbExcursion和sgbLanguage)在多個複選框組上進行篩選
如果你只選擇一個偏移(上覆選框),只是一個語言過濾器工作正常。
如果我選擇2種語言(較低的複選框),它將被處理爲「或」。所有講出所選語言的人都會被顯示出來,而不是隻說出兩種選定語言的人。與遊覽相同的問題。
在這裏,我選擇了建立旅遊和語言列表:
List<int> oExcursionID = new List<int>();
foreach (Control oControl in sgbExcursion.Controls)
{
if (oControl.GetType() == typeof(CheckBox))
{
CheckBox oCheckBox = (CheckBox)oControl;
if (oCheckBox.Checked)
{
oExcursionID.Add(int.Parse(oCheckBox.Tag.ToString()));
}
}
}
List<int> oLanguageID = new List<int>();
foreach (Control oControl in sgbLanguage.Controls)
{
if (oControl.GetType() == typeof(CheckBox))
{
CheckBox oCheckBox = (CheckBox)oControl;
if (oCheckBox.Checked)
{
oLanguageID.Add(int.Parse(oCheckBox.Tag.ToString()));
}
}
}
在這裏,我試圖得到正確的價值觀從數據庫中。語言和遊覽都保存在關係表(Person_ID,Exursion_ID)或(Person_ID,Language_ID)中。
var vGuides = (from oGuideToAdd in clsApplication._oDBConnection.tblGuides
where ((from oGuideExcursion in clsApplication._oDBConnection.tblGuideExcursions
where oExcursionID.Contains(oGuideExcursion.ExcursionID)
select oGuideExcursion.GuideID).Contains(oGuideToAdd.ID)
&& (from oGuideLanguage in clsApplication._oDBConnection.tblGuideLanguages
where oLanguageID.Contains(oGuideLanguage.LanguageID)
select oGuideLanguage.GuideID).Contains(oGuideToAdd.ID))
select oGuideToAdd).ToList();
什麼可以改變以獲得正確的輸出?