如何连接多个表并填充到 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 控件中?的主要内容,如果未能解决你的问题,请参考以下文章

使用多个 XML 文件中的特定 XML 节点填充 datagridview

如何连接多个表,包括查找表并按行返回数据

如何从多个数据库中收集数据并将它们绑定到单个 datagridview 中?

如何使用 Entity Framework 将多个表中的数据绑定到 datagridview 并使用 CRUD 操作?

数据网格视图更新,在 vb.net windows 窗体中编辑和删除,使用多个表来填充 datagridview

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