• 如何在同一页面显示父子表的内容


     

    1、使用 DataView 进行关系导航

    如果 DataSet 中的表之间存在关系,则可以使用 DataRowView 的 CreateChildView 方法为父表中的行创建一个 DataView,该 DataView 包含来自相关子表的行。

    关键代码:

    首先要定义关系:

    private DataRelation 关系对象;

    关系对象=数据集名.Relations.Add("关系名",数据集名.表1名. Columns["关系列名"],数据集名.表2名. Columns["关系列名"]);

    其次在DataGrid1_SelectedIndexChanged事件中写以下代码:

    BindData(); //数据绑定             

                DataRow crRow;//声明数据行

                int iIdx;

                iIdx = DataGrid1.SelectedIndex ;//获得在DataGrid中所选择的行号

                crRow = this.数据集名.数据表1名.Rows[iIdx];//获得所选择的行

                Label3.Text="";

                //通过DataRow的GetChildRows()获得子表中与之关联的所有行;

                foreach(DataRow r in crRow.GetChildRows(“关系名”))

                {

                    Label3.Text += r["订单ID"] + ", ";

                }

                DataView parentTableView = new DataView(数据集名.数据表1名); //父表的数据视图

                DataRowView currentRowView = parentTableView[iIdx]; //父表行的数据视图

            //通过DataRowView的CreatChildView()方法获得子表的数据表视图

                DataGrid2.DataSource = currentRowView.CreateChildView(“关系名”);

                DataGrid2.DataBind();

    2、导航表间关系

    DataRelation 的主要功能之一是允许您在 DataSet 中从一个 DataTable 导航至另一个 DataTable。它使您能够在给定相关 DataTable 中的单个 DataRow 的情况下检索一个 DataTable 中的所有相关 DataRow 对象。例如,当建立客户表和订单表之间的 DataRelation 后,可以使用 DataRow.GetChildRows 检索特定客户行的所有订单行。

  • 相关阅读:
    位运算符设置权限
    urlencode、urldecode、rawurlencode、rawurldecod
    二分查找法的mid值 整数溢出问题
    GIT 常用命令
    nginx配置反向代理转发
    PHP实现无限极分类
    PHP面试题目整理(持续更新)
    去除input的默认样式
    git 常用指令
    数组去重
  • 原文地址:https://www.cnblogs.com/ahuang1118/p/172570.html
Copyright © 2020-2023  润新知