如何在DataGridView

时间:2015-08-19 15:10:23

标签: c# sql datagridview

我想编写一个在Forms应用程序中显示数据库内容的软件。为了便于解释,我将以购物清单为例。

  • 我在一个表tLists
  • 中有多个列表
  • 我在另一张表中有一些tProductPackages
  • 列表可以包含许多productPackages,一个productPackage可以包含在许多列表中。此m:n关系反映在名为tListProdPacks的单独表中。
  • productPackage包含产品。一个产品可以有几个productPackages。在每个tProductPackage表条目中,都有一个外键FK_ProductID,它引用表tProducts中的条目。

我的表单应用程序应使用BindingNavigator浏览所有列表。在某些绑定控件中,它应显示所选列表的详细信息。这工作正常。 (刚绑定控件。)

所有列表内容(tListProdPacks中所选tLists元素的条目)都应显示在DataGridView中。这也很好。此外,还正确显示了productPackages(tProductPackages项目的详细信息,即下一个表格的一跳)。在此表中,产品值可用作ID(FK _ ProductID)(t产品的外键)。

有没有办法在DataGridView中显示产品名称(仅包含在tProducts中),其DataSource是tListProdPacks? (显示tProductPackages成员很容易,因为来自tProductPackages的主键被引用tListProdPacks并使用此ID我可以通过继续使用来显示来自tProductPackages的所有其他详细信息相同的值成员,但为单个DataGridView列使用不同的DisplayMember值[使用DGV中的下拉控件]。) 但是当进一步跳过一张桌子时(即跳到tProducts桌子时),这不再起作用了。

我知道我可以创建一个自定义查询(加入,查看)来获得我想要的内容,但是我无法再从数据集中更新数据库。

有没有人知道如何实现这一目标? (我想框架提供了一些简单的方法,我只是看不到它,对吧?)

我不确定我是否能够描述我想要完成的事情。如果没有,请另外帮助我提供什么。

祝你好运, 汤姆

1 个答案:

答案 0 :(得分:1)

如果表包含主键外键关系,则可以使用连接关联表。使用连接,您可以检索包含您可能需要的所有字段的单个结果集。