使用数据集c#填充树视图节点

本文关键字:视图 节点 填充 数据集 | 更新日期: 2023-09-27 18:15:23

好友我有这个代码来填充2表中的父节点和子节点

第一个父表是类别

儿童餐桌价格昂贵

Water_Category(父节点(==表类别

water month 1     (child node) == table Expensive
water for month 2

天然气Gategory

gas for month 1
gas for mont2

我的问题是什么:我的问题是,此代码仅从表Category中使用父节点填充树视图并且不填充表中的子节点昂贵的

OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Properties.Settings.Default.dPath + ";Jet OLEDB:Database Password=azouz(2016)");
OleDbDataAdapter da = new OleDbDataAdapter("Select * from Category", cn);
OleDbDataAdapter daSub = new OleDbDataAdapter("Select * from Expensive", cn);
DataSet ds = new DataSet();
da.Fill(ds, "Category");
daSub.Fill(ds, "Expensive");
ds.Relations.Add("Cat_Expensive", ds.Tables["Category"].Columns["Catid"], ds.Tables["Expensive"].Columns["Catid"]);
foreach (DataRow dr in ds.Tables["Category"].Rows)
{
    TreeNode tn = new TreeNode(dr["Category"].ToString());
    foreach (DataRow drChild in dr.GetChildRows("Expensive"))
    {
        tn.Nodes.Add(drChild["ExpensiveName"].ToString());
        treeView1.Nodes.Add(tn);
    }
    treeView1.Nodes.Add(tn);
}

使用数据集c#填充树视图节点

您不是在为"昂贵"创建新的树节点。

您在第二个foreach中为子迭代创建另一个树节点,并将子节点添加到父节点"tn">

如下所示(基于您的代码,未经测试(。

foreach (DataRow dr in ds.Tables["Category"].Rows)
{
    TreeNode tn = new TreeNode(dr["Category"].ToString());
    foreach (DataRow drChild in dr.GetChildRows("Expensive"))
    {
        //Create a child tree node here
        TreeNode tnChild = new TreeNode(drChild["Expensive"].ToString());
        tn.Nodes.Add(tnChild );
    }
}

一个非常古老但概念上非常简单的例子:

https://msdn.microsoft.com/en-us/library/aa287575(v=vs.71(.aspx