使用数据关系合并 2 个不同的数据表
本文关键字:数据表 数据 关系 合并 | 更新日期: 2023-09-27 18:30:40
我试图像这样合并 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 的内部连接行为。在不告诉我们具体错误的情况下,只能假设您没有正确定义用于连接的键(例如,您在关系中指定的列不存在)。