【问题标题】:VB.NET- Is there any way to bind two datatable in a datagridVB.NET-有没有办法在数据网格中绑定两个数据表
【发布时间】:2013-08-08 06:17:10
【问题描述】:

我需要帮助来绑定两个不同数据表中的值。

示例:我有一个数据表 xyx 有 4 列和一定数量的行,y 有 1 列和与 x 相同数量的行。现在我希望数据表y 中的这一列出现在数据表中x 的第二个位置,例如x-y-x-x-x...。这必须是在数据网格中显示列的顺序,但是如何绑定它们呢?

即使我绑定它们,我也需要格式化列位置。有什么办法吗?

【问题讨论】:

  • 您想使用 SQL 查询从数据库中加载这些吗?
  • yes.... 这两个数据表包含从 sql 数据库加载的值。
  • 所以最好通过特定的 SQL 命令(查询)

标签: vb.net datagridview datatable


【解决方案1】:

几个选项:

选项 1:将数据加载到一个表而不是两个表中

选项2:如果都是只读的,则将两个数据表合并为一个表

选项 3:使用未绑定的列 - 绑定一个表但未绑定另一个表

选项 4:编写一个包装器类来包装数据,然后将(包装器对象的)列表绑定到网格,类似于:

Public Class MyData
    Private _rowA As tblARow
    Private _rowB As tblBrow
    Sub New(rowFromA As tblARow, rowFromB As tblBRow)
        _rowA = rowFromA
        _rowB = rowFromB
    End Sub

    Property ColumnA As String
        Get
            Return _rowA.ColumnA
        End Get
        Set(value As String)
            _rowA.ColumnA = value
        End Set
    End Property

    ' // Other properties...
End Class

【讨论】:

  • 我尝试合并数据表,但如何编辑该数据表中列的位置...我需要像 x-y-x-x-x 这样的列
  • 你可以简单地创建一个新表并按照你想要的顺序复制列
  • 那是我做不到的问题...它受到限制...有替代方案吗??
  • 选项 4 怎么样 - 改用包装类,这是最终的解决方案,几乎可以适应所有场景
【解决方案2】:

创建一个数据集。在数据集中添加一个新表。该表应使用您的自定义查询创建。在该表中,您应该加载数据,然后将其检索到数据网格中(您也可以预览数据)。这很容易。使用 Visual Studio 中的可视化工具。

【讨论】:

    猜你喜欢
    • 2022-10-17
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多