如何使用绑定源绑定多个数据表?

时间:2013-06-12 13:13:22

标签: c# .net winforms datatable

首先,我想说我已经广泛搜索了互联网,但没有找到关于这个主题的任何内容。

我的情况是我在SQL数据库中有一个联结表表(一个表只包含一个主键和其他表的外键)。现在,我实际上希望通过win表单编辑这个联结表。使用组合框设置绑定源到绑定表是没有问题的,但是用户在选择数据时只会看到主/外键GUID,显然这是不合需要的。这些外键指向的记录具有“名称”列,但它们位于另一个表上。那么我怎么能拥有它,以便当用户在看到一堆FK guids的用户中稳定地选择联结表中的记录时,用户将看到与这些记录相关联的名称。

最后,请注意绑定确实是关键所在。我可以获取数据插入(相应记录的名称)来填充列表框/组合框没问题,问题是当用户选择联结表上的记录时,我需要其他控件来反映选择中的更改。我认为绑定是实现这种效果的方法。

很抱歉,如果我的问题有点难以理解,我很难解释它(我自己也是新手)。

2 个答案:

答案 0 :(得分:0)

没有中间(联结)表应该绑定控制,因为它纯粹意味着实现many to many关系。因此,重新考虑您的场景或设计是非常明智的。

答案 1 :(得分:0)

问题在于你的sqldatasource ...我假设你的sqldatasource看起来像这样:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDatabaseString %>"
                    SelectCommand="SELECT * FROM [ListOfFunFacts]"></asp:SqlDataSource>

如果您希望显示名称而不是您需要的内容:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDatabaseString %>"
                        SelectCommand="SELECT * FROM [ListOfFunFacts] a inner join Table2 b on  a.foreignkeyTable2 = b.Id"></asp:SqlDataSource>