如何连接多个表并填充到 datagridview 控件中?

Posted

技术标签:

【中文标题】如何连接多个表并填充到 datagridview 控件中?【英文标题】:how to connect multiple tables and populate into a datagridview control? 【发布时间】:2010-03-12 16:07:15 【问题描述】:

我能想到的是创建一个视图,但如果还有其他更好的解决方案?

【问题讨论】:

【参考方案1】:

视图可能是这里最好的简单解决方案。

您能否发布您的域模型示例,以便我们提供更好的帮助?

有一点是肯定的:“越简单越好”。把事情简单化! =)

【讨论】:

【参考方案2】:

如果您需要连接多个表的输出并在 gridview 中显示,那么您需要创建一个视图或存储的 proc 返回必要的结果并将其数据绑定到网格。

【讨论】:

【参考方案3】:

我会使用虚拟模式而不是绑定。这使得从不同来源即时提取数据变得非常容易。微软有使用教程:How to: Implement Virtual Mode in the Windows Forms DataGridView Control

本质上,不是在启动时加载所有数据或使用绑定源,而是挂钩 CellValueNeeded 事件。 DataGridView 将在需要显示单元格时触发该事件,您可以在那时提供您想要的任何数据。在您的 CellValueNeeded 处理程序中,您可以根据需要将 DataGridView 的行和列映射到您的表中。

private void my_init_function() 
    datagridview.VirtualMode = true;
    datagridview.CellValueNeeded += new System.Windows.Forms.DataGridViewCellValueEventHandler(datagridview_CellValueNeeded);


private void datagridview_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)

    e.Value = get_my_data(e.RowIndex, e.ColumnIndex);

【讨论】:

@MemoryLeak:我更新了我的答案,添加了额外的解释、微软虚拟模式教程的链接和一个非常简短的示例。如果您还有其他问题,请告诉我。

以上是关于如何连接多个表并填充到 datagridview 控件中?的主要内容,如果未能解决你的问题,请参考以下文章

连接两个表并在一行中合并多个关联

连接两个表并从一列返回多个匹配项的 SQL 查询?

SQL 连接两个表并检查两个表中的每个值是不是存在

连接多个表并选择共同字段时返回自定义 JOOQ 记录

如何连接两个表并显示源?

加入多个表并显示从 id 链接的所有名称