如何连接多个表并填充到 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 操作?