0

我有三个数据库表:

  • 汽车清单,
  • 人员名单,以及
  • 三是人对车的多对多表。

在我的一个人的 winform 上,我有一个可用汽车的列表框。从数据库加载该列表框很容易(数据绑定)。有没有什么简单的方法可以根据多对多表选择一个人拥有的汽车,还是我必须求助于遍历列表框并将其与多对多表进行比较?

所以,如果我有 John Doe,他拥有一辆福特和一辆本田,并且 lsitbox 中的选项是雪佛兰、本田、福特、丰田和日产,那么当 John Doe 的表格打开时,应该只选择本田和福特。

谢谢您的帮助!

4

1 回答 1

0

根据作者的评论编辑:

好吧,我一开始就搞错了。我想没有真正的“最佳实践”,无论哪种方式,您都必须遍历列表框。

就像是:

// Assuming dtPersonsCars is the DataTable containing two primary keys, persons and cars
       lstBoxCars.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
       for (int i = 0; i < lstBoxCars.Items.Count; i++)
       {
          if (dtPersonsCars.Rows.Find(new object[]{"PERSON", lstBoxAenderungen.Items[i].ToString()}) != null)
              lstBoxCars.SetSelected(i, true);
       }
于 2013-05-20T05:55:43.737 回答