c# - 使用数据集 c# 填充 TreeView 节点

标签 c#

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

第一个父表是类别

子表很昂贵

Water_Category(父节点)==表类别

water month 1     (child node) == table Expensive

water for month 2

煤气门

gas for month 1
gas for mont2

我的问题是什么: 我的问题此代码仅使用表类别中的父节点填充 TreeView 并且不填充表 Expensive 中的子节点

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);
}

最佳答案

您没有为“昂贵”创建新的树节点。

您在第二个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

关于c# - 使用数据集 c# 填充 TreeView 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40294366/

相关文章:

c# - SizeToContent 不尊重 SharedSizeGroups

c# - 旧的注释代码和代码中的大量空格会降低性能吗?

c# - 使用 PLinq 列出 Contains()?

c# - 将 session ID 存储为字符串并将其转换回 GUID

c# - 在 C# 中,您可以使 Windows 窗体应用程序作为服务启动吗?

c# - 如何禁用文本框上的选择

c# - 这种方式在 c# 中传递参数真的很好吗

c# - 是否可以缓存 IEnumerable 惰性评估结果?

c# - 使用 Unity 进行 Firebase 电话身份验证

c# - 如何逐行读取 StreamReader 文本