0

我遇到了一些遗留代码似乎有点奇怪的问题。有问题的代码是使用 2 个 DataTables 创建一个 DataSet,然后在数据用于网格视图(自定义用户控件)之前定义表之间的关系 - 子记录分组在适当的父记录下。关系似乎设置正确,ParentColumnChildColumn都设置为具有匹配值的列。但是,如果两个父级之间的另外两个单独的列值相同,则所有子记录仅显示在一个父级下方。

数据集信息

资源表

| 用户名 | 会员ID | 名字 | 姓氏 | 电子邮件 |
| 53C ... | C3A ........ | 詹姆斯..... | 巴恩斯.....| jbarnes@rmail.com |
| AE4 ... | 07A .... | 詹姆斯..... | 巴恩斯.....| buckybarnes@hotmail.com |

请求表

| 请求ID | 所有者 ID | 会员ID |
| 第1234章………… 53C .......| C3A .... |
| 第2345章 AE4 .......| 07A ....|
| 7689 ........| AE4 .......| 07A .... |

在这种情况下,Resource表中的行是父记录,表中的行是子记录Request。基于此,我的预期是 53C James Barnes 的记录下方会有 1 排,AE4 James Barnes 下方会有 2 排。实际上,我在 53C(我认为)James Barnes 下看到了 3 排。其他詹姆斯巴恩斯没有列出。

这是以下设置DataRelation

DataRelation resource_timesheet = new DataRelation(
                "relationName",
                ResourceTable.Columns[0],
                RequestTable.Columns[1],
                false);

由于直接引用父/子值列,我认为列名无关紧要(也许?)。

我浏览了大量可以在这里和其他地方找到的文章,但我没有发现任何类似的东西。除了资源表中名字和姓氏匹配的情况外,其他一切都正常。

4

0 回答 0