繁体   English   中英

使用DataRelation合并2个不同的数据表

[英]merge 2 different datatable using DataRelation

我试图像这样合并2个数据表。 但是我的表具有不同的架构和不同的行数。 所以我在这里得到一个错误:

    DataRelation drel = new DataRelation("EquiJoin",cr1, cr2, true);
    dataSet.Relations.Add(drel);//error

据我了解,因为第一个表比第二个表具有更多的行。

   Error: Cannot evaluate expression because a native frame is on top of the call stack.

表格如下:

    snowFlake:                              snow:
f_text  |   f_link_id   |    f_tabkey |   | f_text  |   f_link_id   |   f_tabkey  |
--------+---------------+-------------|   |---------+---------------+-------------|
row1    |    100001     |      1      |   |  -      |  100000       |     1       |
row2    |    100001     |      2      |   |  +      |  100001       |     1       |
row3    |    100001     |      3      |   |  -      |  100001       |     2       |
row4    |    100002     |      1      |   |  +      |  100001       |     3       |
row5    |    100003     |      1      |   |  +      |  100002       |     1       |
                                          |  +      |  100003       |     1       |
                                          |  -      |  100003       |     1       |
                                          |  +      |  100004       |     1       |
                                          |  -      |  100005       |     1       |

我使用的主键:

            snowFlake.PrimaryKey = new DataColumn [] { snowFlake.Columns[IndexesField.F_LINK_ID], snowFlake.Columns[IndexesField.F_TABKEY] };
            snow.PrimaryKey = new DataColumn [] { snow.Columns[IndexesField.F_LINK_ID], snow.Columns[IndexesField.F_TABKEY] };
            DataColumn[] cr1 = { snowFlake.Columns[IndexesField.F_LINK_ID], snowFlake.Columns[IndexesField.F_TABKEY] };
            DataColumn[] cr2 = { snow.Columns[IndexesField.F_LINK_ID], snow.Columns[IndexesField.F_TABKEY] };

我该如何解决?

问候,亚历山大。

它们没有相同的行数并不重要,因为它们是通过关系进行连接的,从而模仿了TSQL的内部连接行为。 在没有告诉我们具体错误的情况下,只能假设您没有正确定义要联接的键(例如,在关系中指定的列不存在)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM