【问题标题】:DataSet Relation over Multiple columns多列数据集关系
【发布时间】:2011-09-19 19:21:01
【问题描述】:

我很难在数据集中的表之间设置关系。我有 2 个中继器(嵌套)。 RepeaterReplies 是外部中继器。这是我绑定它并设置关系的地方。

这就是我所拥有的

            List<DataColumn> parents = new List<DataColumn>{};
            parents.Add(ds.Tables[0].Columns["REPLY_ID"]);
            parents.Add(ds.Tables[0].Columns["USER_ID"]);
            List<DataColumn> childs = new List<DataColumn>{};
            childs.Add(ds.Tables[2].Columns["REPLY_ID"]);
            childs.Add(ds.Tables[2].Columns["MAKER_USER_ID"]);
            DataColumn[] parentz = parents.ToArray();
            DataColumn[] children = childs.ToArray();
            ds.Relations.Add("parents", parentz, children,false);
            repeaterReplies.DataSource = ds;
            repeaterReplies.DataBind();

当我检查包含 3 个表的数据集时(我只需要设置第一个和最后一个表之间的关系 - tbl[0] 和 tbl[2])并且我确定第一个表具有列 REPLY_ID 和 USER_ID第三张表有 REPLY_ID 和 MAKER_USER_ID。

绑定内部中继器时出现错误(外部中继器的ItemDataBound)

                DataRowView dv = e.Item.DataItem as DataRowView;
                Repeater nestedRepeater = e.Item.FindControl("repeaterComments") as Repeater;
                if (nestedRepeater != null)
                {
                    nestedRepeater.DataSource = dv.CreateChildView("replies");
                    nestedRepeater.DataBind();
                }

错误是

关系不是此 DataView 所指向的表的父级 点。

谢谢

【问题讨论】:

    标签: asp.net dataset relation multiple-columns


    【解决方案1】:

    从未尝试过CreateChildView 方法,但您不应该使用您在DataRelation 中定义的名称吗?

    nestedRepeater.DataSource = dv.CreateChildView("parents");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 2011-12-31
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2014-10-06
      相关资源
      最近更新 更多