0

我有 2 个数据集,每个数据集有 1 个表(7 列)。这两个表都有不同的列名,但结构相同。我想加入/合并/合并这 2 个表并生成一个只有 7 个列的表。我与 Merge 合作,但这会产生 14 个 cols 并且实际上并没有加入它们。我也在这个网站和其他网站上进行了搜索,但找不到适合我的情况的任何解决方案。我的代码是:

    Private Sub FillMatchToOtstdAdapter()
    Dim sql1 As String = "SELECT DOCMCH.docmch_nAccNo, DOCMCH.docmch_lRefDocId, DOCMCH.docmch_nDocLnNo, DOCMCH.docmch_dAdjustedAmt, DOCMCH.docmch_dAdjustedAmt, DOCHDR.dochdr_nVersionNo, 'D' AS Expr1 FROM TXNTYP INNER JOIN (DOCHDR INNER JOIN DOCMCH ON DOCHDR.dochdr_lDocId = DOCMCH.docmch_lRefDocId) ON TXNTYP.txntyp_sDocTyp = DOCHDR.dochdr_sDocType WHERE (((TXNTYP.txntyp_cDocTypCat)='F') AND ((DOCHDR.dochdr_lDocDt)>=20120630));"
    Dim sql2 As String = "select otstnd_nAccNo, otstnd_lDocId, otstnd_nDocLnNo, otstnd_dOtstndgAmt, otstnd_dDocLnAmt, otstnd_nVersionNo, otstnd_cOtstndgSign from otstnd"

    ' Get Records of Query 1
    ds_otstnd_Adap = New OleDb.OleDbDataAdapter(sql1, connStr)
    ds_otstnd_Adap.Fill(ds_otstnd_Ds)
    ds_otstnd_Dt = ds_otstnd_Ds.Tables(0)

    ' Get Records of Query 2
    Dim adap As New OleDb.OleDbDataAdapter(sql2, connStr)
    Dim ds As New DataSet
    adap.Fill(ds)

    ' Merge both of them
    ds_otstnd_Dt.Merge(ds.Tables(0), False, MissingSchemaAction.Add)
    DataGridView1.DataSource = ds_otstnd_Dt
End Sub

知道如何在仅包含 7 个列的单个表中生成结果 - 只需将第二个表中的数据添加到第一个表中。我正在考虑从 table2 中选择每一行并添加 table1,但它们可能有很多行,如果可以以更简单的方式管理事情,我不想进入不必要的过程。

非常感谢任何帮助。

谢谢

4

1 回答 1

0

我得到了它。我在查询中为每个表的结果添加了“as Col1”。对于合并,将 MissingSchemaAction.Add 替换为 MissingSchemaAction.Ignore。

这对我有用。

于 2012-07-26T08:48:50.000 回答