用DataRelation给多个DataTable建立关系,然后绑定到TreeView显示出来
来源:互联网 发布:软件工程与医疗云计算 编辑:程序博客网 时间:2024/06/05 21:55
包含相关数据表的数据集使用 DataRelation 对象表示表之间的父/子关系并互相返回相关记录。使用“数据源配置向导”或“数据集设计器”将相关表添加到数据集可为您创建和配置 DataRelation 对象。有关返回相关记录的更多信息,请参见如何:访问相关数据表中的记录。有关创建数据关系的信息,请参见如何:使用数据集设计器创建 DataRelation。
DataRelation 对象执行两种功能:
它可使与正使用的记录相关的记录可用。如果在父记录 (GetChildRows) 中,则它提供子记录;如果正使用子记录 (GetParentRow),则它提供父记录。
它可强制约束的引用完整性,如删除父记录时删除相关的子记录。
了解真正的联接与 DataRelation 对象功能之间的差异很重要。在真正的联接中,从父表和子表获取记录并将其放入单个的平面记录集。当使用 DataRelation 对象时,不创建新记录集。而关系跟踪表之间的关系并使父记录和子记录保持同步。
public partial class DataRelationDemo : System.Web.UI.Page
{
private SqlConnection conn;
private SqlDataAdapter dad;
private DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
//连接数据库pubs,且把三张表填充到DataSet里;
this.conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["pubsConnectionString"].ToString());
this.dad = new SqlDataAdapter("select job_id,job_desc from jobs select pub_id,pub_name from publishers select pub_id,job_id,fname,lname from employee", conn);
this.ds=new DataSet();
this.dad.Fill(ds);
//给三张表建立不同的关系;
//通过job_id给employee和jobs建立主外间关系;注意主表(父表)在前,从表(子表)在后,注意参数的顺序
DataRelation relationjob = new DataRelation("empjob", ds.Tables[0].Columns["job_id"], ds.Tables[2].Columns["job_id"]);
//添加到DataSet里的Relations中;
ds.Relations.Add(relationjob);
//通过pub_id给employee和publishers建立主外间关系;注意主表(父表)在前,从表(子表)在后,注意参数的顺序
DataRelation relationpub = new DataRelation("emppub", ds.Tables[1].Columns["pub_id"], ds.Tables[2].Columns["pub_id"]);
//添加到DataSet里的Relations中;
ds.Relations.Add(relationpub);
//循环遍力主表(父表),
foreach (DataRow drpub in ds.Tables[1].Rows) {
//建立父节点
TreeNode nodepart = new TreeNode();
nodepart.Text = drpub["pub_name"].ToString();
this.TreeView1.Nodes.Add(nodepart);//将父节点添加到树控件;
//在循环遍力主表所对应的从表(子表),用GetChildRows(relationpub)得到的是一个DataRow数组;
foreach (DataRow dremp in drpub.GetChildRows(relationpub)) {
//在建立子节点;
TreeNode nodechild = new TreeNode();
nodechild.Text = dremp["fname"].ToString() + " " + dremp["lname"].ToString();
nodepart.ChildNodes.Add(nodechild);//将子节点添加到父节点里;
//通过dremp.GetParentRow(relationjob)这个方法得到从表(子表)所对应的主表(父表),而返回的是一行DataRow数据;
//因此不需要用循环遍历;
DataRow dr=dremp.GetParentRow(relationjob);
////在建立子节点;
TreeNode nodechch = new TreeNode();
nodechch.Text = dr["job_desc"].ToString();
nodechild.ChildNodes.Add(nodechch);//将子节点添加到上以及子节点里;
}
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/love_may555/archive/2008/05/27/2487379.aspx
- 用DataRelation给多个DataTable建立关系,然后绑定到TreeView显示出来
- 用DataRelation给多个DataTable建立关系,然后绑定到TreeView显示出来
- 用DataRelation给多个DataTable建立关系,然后绑定到TreeView显示出来
- 用DataRelation给多个DataTable建立关系,然后绑定到TreeView显示出来
- 用DataRelation给多个DataTable建立关系并显示到TreeView
- 把多个menu绑定到treeview
- WPF 读XML文件到DataTable然后再到TreeView
- 用DataTable绑定TreeView的方法
- 练习:输入5个数字,取最后一个数字加上中间第二到四个数字,最后加上第一个数字,然后用alert显示出来
- TreeView与DataTable的绑定
- TreeView与DataTable的绑定
- 将XML文件绑定到TreeView,建立树形导航
- TreeView控件绑定多个数据库表
- 用递归方法把资料绑定到TreeView控件,显示文档目录
- 用递归方法把资料绑定到TreeView控件,显示文档目录
- 数据绑定到TreeView
- 显示DataTable的 TreeView 控件
- 求教。将Excel文件导入DataTable中,然后绑定到GridView中。
- Spring Web应用的线程安全
- Ruby的辛酸历程【一】
- C++导入导出CSV文件
- Memcached安装
- vsftpd安装
- 用DataRelation给多个DataTable建立关系,然后绑定到TreeView显示出来
- 系统优化
- 数据源
- oracle 解疑
- 在使用struts标签时,把<s:if>中的test写成了text
- kmp字符串匹配算法实现
- ACM常用算法
- ArcGIS Server的REST接口
- Eclipse历史