我试图像这样合并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] };

我该如何解决?

问候,亚历山大。

#1楼 票数:0

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

  ask by alexander.skibin translate from so

未解决问题?本站智能推荐:

1回复

使用DataRelation合并两个数据表的问题

嗨,我正在尝试合并以下两个数据表,代码没有出错,但是没有在输出中合并它们。 我在这条线上遇到麻烦: 码:
2回复

数据表合并问题

我有两个要合并的数据表。 我知道2 for loops和dataset merge并和linq有很多方法2 for loops 。 但是我发现他们所有人都需要确切地知道每个数据表有多少列。 我的情况有些不同。 我正在从2个csv文件中获取数据并填充两个数据表。 因此
2回复

使用数据表合并数据库

我有以下代码,应该用远程代码覆盖本地Users表。 我可以看到“合并”工作正常,但“更新”不执行任何操作(即,数据表中包含新值,但没有将其写入LocalDb连接/数据库)-是否有一种简单的方法来执行我正在做的事情或使这项工作?
2回复

合并数据表的列

我正在读取“ .xml”文件,将从中创建数据表。 数据表的列取决于“ .xml”文件。 以下是示例。 在此处输入图片说明 如示例所示,将从.xml文件中获取data1,data2,data3 ...等。 相对于列标题(item1,item2,item3 ...等)添加了数据(a,b
2回复

将数据表与条件合并

我想根据条件使用总和或平均值在列表中合并DataTable 。 例如: 将所有数据表视为完全相同但值不同,因为它们是来自相似架构但数据中心不同的表。 谢谢。
4回复

合并2个数据表

我有2个数据表dt和dt2 在第一张表dt中有两列“ id_staff”和“ name_staff”。在第二张表中有几列,但其中两列重复了“ id_staff”和“ name_staff”。我想用字段“ id_staff”和“ name_staff”创建一个新的DataTable常见的D
1回复

将3个不同的数据表合并为1个并使用SQL进行性能测试

我被要求做一份报告,其中包含我们使用的3种不同的水晶报告。 这些报告已经非常缓慢且繁重,无法完成一项大报告。 因此,我在VS 2010中创建了一些小应用程序。 我的主要问题是,我有3个需要结合使用的数据集设计器创建的数据表(相同的架构)。 我创建了一个空表来存储组合值。 这些查询已
1回复

使用LINQ合并两个数据表

我的问题也是类似THIS 我有两个数据表: 数据表1: 数据表2: 我需要以下结果: 新数据表: 预期结果: 到目前为止,我所做的是: 我想返回一个IList集合(System.Collections.IList) UPDATE