【发布时间】:2011-03-11 16:20:55
【问题描述】:
我要做的是根据第一个选中列表框中的所选项目填充第二个选中列表框,并在第一个框中未选中父项时从数据库中删除这些项目。我可以通过仅循环遍历 选中 项来填充第二个框,但是,如果我要从表中删除它们,我还需要包括未选中的项。这是我目前拥有的代码:
for (int i = 0; i < ckbObjectives.Items.Count; i++)
{
objectiveTableAdapter.ClearBeforeFill = false;
if (ckbObjectives.GetItemChecked(i))
{
this.objectiveTableAdapter.FillByParentObjective((CWSToolkitDataSet.ObjectiveDataTable)cWSToolkitDataSet.Tables["ChildObjectives"], Convert.ToInt32(((DataRowView)ckbObjectives.Items[i])[ckbObjectives.ValueMember].ToString()));
}
else
{
this.objectiveTableAdapter.Delete((CWSToolkitDataSet.ObjectiveDataTable)cWSToolkitDataSet.Tables["ChildObjectives"], Convert.ToInt32(((DataRowView)ckbObjectives.Items[i])[ckbObjectives.ValueMember].ToString()));
}
}
cblSubObjectives.DataSource = cWSToolkitDataSet.Tables["ChildObjectives"];
cblSubObjectives.DisplayMember = "Title";
cblSubObjectives.ValueMember = "ObjectiveID";
我没有收到任何错误,但是第二个选中的列表框没有被填充。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
您是否已单步执行代码?您的代码是否到达
FillByParentObjective?这是 WPF、Silverlight、Winforms、Webforms 吗? -
这是 Visual Studio 2010。不,我检查检查项目的 if 语句返回 false,无论检查项目。编辑:我也尝试过
if (ckbObjectives.GetItemCheckState(i) == CheckState.Checked),它在检查项目时也返回 false。
标签: c# sql loops checkedlistbox