代码之家  ›  专栏  ›  技术社区  ›  Tim Schmelter

数据集中的关系表总是返回0行

  •  1
  • Tim Schmelter  · 技术社区  · 14 年前

    在一个表中有两个表相互关联 一对多 为什么这个数组的长度总是0? 因为ClaimDetail包含超过4000万行,所以在调用GetClaimDetailRows之前我没有填充它,但是已经配置了selectcommand,它只需要一个参数idData来填充相关的记录。但这似乎不起作用,因为ClaimDetail数据表是空的。

    alt text
    (来源: bilder-hochladen.net )

    ClaimRow类中自动生成的函数,它返回所有相关的ClaimDetailRows:

            Public Function GetClaimDetailRows() As ClaimDetailRow()
                If (Me.Table.ChildRelations("Claim_ClaimDetail") Is Nothing) Then
                    Return New ClaimDetailRow(-1) {}
                Else
                    Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("Claim_ClaimDetail")),ClaimDetailRow())
                End If
            End Function
    

    我是否必须为每个索赔首先填写Claimdetail数据表(ClearBeforeFill=True)?但是我不需要再使用这个函数了。

    更新 :在调用子函数并使其工作之前,我现在填充Datatable(ClearBeforeFill=True)。但是我不明白为什么当我试图访问一个子关系而不填充该数据表(至少0行)时它不能抛出异常(可选)。相反,它返回0行,其中可能是正确的或不正确的,并且很难检测到。这是缺乏设计还是我遗漏了什么?

    1 回复  |  直到 5 年前
        1
  •  3
  •   Henk Holterman    14 年前

    因为生成的GetChildRows()假定(所有)子记录都加载到内存中。