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

如何连接多个表并填充到 datagridview 控件中? 我能想到的是创建一个视图,但如果还有其他更好的解决方案?

【问题讨论】:

    标签: c# database winforms datagridview view


    【解决方案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:我更新了我的答案,添加了额外的解释、微软虚拟模式教程的链接和一个非常简短的示例。如果您还有其他问题,请告诉我。
        猜你喜欢
        • 2019-03-13
        • 1970-01-01
        • 1970-01-01
        • 2021-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 2012-06-29
        相关资源
        最近更新 更多