C# 基于绑定源中的数据筛选组合框中的数据集

C# 基于绑定源中的数据筛选组合框中的数据集,c#,visual-studio-2013,combobox,dataset-designer,C#,Visual Studio 2013,Combobox,Dataset Designer,我构建了一个组合框,它使用一个包含两个表的数据集,以便对要显示的值执行查找,但将另一个值保存回去 它是根据这个伟大的博客建立的,这是她在沼泽中的两个项目中的第一个: 现在我还有一步要走,我希望有人能帮助我: 在我的例子中,组合框正在填充一个“父Id”。因此,它有助于在表中构建父子层次结构。将该表视为3列—Id、Name、ParentId 因此,数据集有两个表,实际上它们是相同的数据库表,由父id关联 这很好用——但我想再清理一下:组合框不应该在列表中显示孩子的名字。它应该显示所有其他可能的选择

我构建了一个组合框,它使用一个包含两个表的数据集,以便对要显示的值执行查找,但将另一个值保存回去

它是根据这个伟大的博客建立的,这是她在沼泽中的两个项目中的第一个:

现在我还有一步要走,我希望有人能帮助我:

在我的例子中,组合框正在填充一个“父Id”。因此,它有助于在表中构建父子层次结构。将该表视为3列—Id、Name、ParentId 因此,数据集有两个表,实际上它们是相同的数据库表,由父id关联

这很好用——但我想再清理一下:组合框不应该在列表中显示孩子的名字。它应该显示所有其他可能的选择,但不应该让用户选择孩子作为自己的父母

我应该使用某种类型的过滤器查询来引用子级的bindingsource的Id吗?我是否应该更改组合框数据集中的select语句,或者使用参数获取要筛选的子项id?我不知道该怎么做

如果不清楚,请告诉我
谢谢

我修改了父表适配器的select查询,并将当前子表作为参数传递给Fill

很好用

向父select添加的子句类似于: Id@curId和Id不在 选择Id 从表中选择为表1 其中ParentID=@curId

->第二部分被添加,这样他们也不能有自己的孩子作为父母