TreeView树形控件动态绑定
2009-07-02 12:52
519 查看
之前在做C# winform编程的时候用到了treeview树形控件,我需要从数据库中查询数据进行动态的绑定,但是我在网上找了相关的资料大多是利用递归函数。我认为这个很好,但是我看的是适宜于一张表的递归,但是我想要实现的是多张表(表与表之是一对多的关系),所以呢,就不能用递归了,花了很长时间在网上去问其他“大侠”和自己整理了下,现将代码贴出来共享,希望能帮到有用的人!备注:工程表(1:n)建筑物表(1:n)点表
TreeNode projectNode, buildingNode, pointNode; OleDbConnection conn = new OleDbConnection(OLEDBHelper.str_connectionString1); //定义数据库链接字符串 OleDbDataAdapter pro_da, bul_da, poi_da; //定义数据适配器(Project、Building、Point) DataSet pro_ds, bul_ds, poi_ds; //定义数据记录集(Project、Building、Point) DataView pro_dv, bul_dv, poi_dv; //获取可能包括筛选视图或游标位置的表的自定义数据视图(Project、Building、Point) private void frmTab_Load(object sender, EventArgs e) { this.treeView1.CheckBoxes = true; //窗体加载时所有节点都显示复选框 /*绑定工程名*/ pro_da = new OleDbDataAdapter("select ProjectID,ProjectName from Project", conn); //实例化数据适配器 pro_ds = new DataSet(); //创建数据记录表的对象 pro_da.Fill(pro_ds); //用数据适配器的对象去填充数据记录集 pro_dv = pro_ds.Tables[0].DefaultView; //表示用于排序、筛选、搜索、编辑和导航的System.Data.DataTable+的可绑定数据的自定义视图 int count = pro_dv.Count; //获取数据视图的数量 int i = 0; //定义初始变量i while (i < count) { projectNode = new TreeNode(); //创建节点对象 projectNode.Text = pro_dv[i]["ProjectName"].ToString(); //显示节点的文本 projectNode.Tag = int.Parse(pro_dv[i]["ProjectID"].ToString()); //保存对应节点的值 treeView1.Nodes.Add(projectNode); //将节点填充到树形控件上 /*绑定建筑物名*/ bul_da = new OleDbDataAdapter("select B1.BuildingName,B1.BuildingID from Building B1 inner join Project P1 on B1.ProjectID = P1.ProjectID where P1.ProjectID =" + pro_dv[i]["ProjectID"], conn); //根据数据库连接字符串和数据SQL语句来创建数据适配器 bul_ds = new DataSet(); //创建数据记录集 bul_da.Fill(bul_ds); //数据适配器填充数据记录集 bul_dv = bul_ds.Tables[0].DefaultView; //获取数据表 int num = bul_dv.Count; //获取数据视图的数量 int j = 0; //定义变量j; while (j < num) { buildingNode = new TreeNode(); //创建节点 buildingNode.Text = bul_dv[j]["BuildingName"].ToString(); //显示节点的文本 buildingNode.Tag = int.Parse(bul_dv[j]["BuildingID"].ToString());//显示节点对应的值 projectNode.Nodes.Add(buildingNode); //将节点绑定到projectNode中 /*绑定点名*/ poi_da = new OleDbDataAdapter("SELECT * FROM MesauringPoint AS M1 INNER JOIN Building AS B1 ON B1.BuildingID=M1.BulidingID WHERE B1.BuildingID=" + bul_dv[j]["BuildingID"], conn); //根据数据库连接字符串和SQL查询语句创建数据适配器 poi_ds = new DataSet(); //创建数据记录表 poi_da.Fill(poi_ds); //用数据适配器填充数据记录表 poi_dv = new DataView(); //创建数据视图 poi_dv = poi_ds.Tables[0].DefaultView; //获取数据表 int number = poi_dv.Count; //获取数据行数 int k = 0; while (k < number) { pointNode = new TreeNode(); //创建节点 pointNode.Text = poi_dv[k]["PointName"].ToString(); //显示节点的文本 pointNode.Tag = int.Parse(poi_dv[k]["PointID"].ToString()); //显示节点对应的值 buildingNode.Nodes.Add(pointNode); //将该节点填充到buildingNode节点中 k++; } j++; } i++; } }
相关文章推荐
- treeview 控件动态绑定数据部分实例代码
- C# treeview 控件动态绑定数据
- 树形控件TreeView与数据库绑定
- treeview控件(动态数据绑定+整行选择)(WPF)(一)
- treeview 控件动态绑定数据部分实例代码
- TreeView存储过程动态绑定树控件
- C# .NET treeView(树形控件)绑定数据的通用方法 (精)
- C# TreeView控件动态绑定数据库
- TreeView存储过程动态绑定树控件
- TreeView树形控件递归绑定数据库里的数据
- 把自身引用的数据表(树形结构)绑定到TreeView上的控件
- 关于VS2005中TreeView控件动态绑定数据库
- ASP.NET树形控件TreeView的递归绑定
- treeview 控件动态绑定数据部分实例代码
- Treeview 存储过程动态绑定树形
- ASP.NET树形控件TreeView的递归绑定
- 动态生成控件-绑定事件(VB.NET/C#)
- asp.net中ListView控件动态绑定数据源后,使用DataPager出现错误的原因及解决办法
- 动态载入数据的无刷新TreeView控件(1)
- Treeview动态添加用户控件传值和取值的实例代码