温馨提示×

winform treeview递归加载数据库怎么实现

小亿
114
2024-03-30 16:35:06
栏目: 智能运维
亿速云云数据库,读写分离,安全稳定,弹性扩容,低至0.3元/天!! 点击查看>>

在Winform中,可以通过递归方式加载数据库数据到TreeView中。下面是一个简单的示例代码:

首先,创建一个TreeView控件和一个Button控件:

TreeView treeView1 = new TreeView();
Button button1 = new Button();
button1.Text = "Load Data";
button1.Click += Button1_Click;

然后,在Button的Click事件中编写递归加载数据库数据的代码:

private void Button1_Click(object sender, EventArgs e)
{
    treeView1.Nodes.Clear(); // 清空TreeView节点

    // 连接数据库并查询数据
    using (SqlConnection conn = new SqlConnection("YourConnectionString"))
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand("SELECT * FROM YourTable", conn);
        SqlDataReader reader = cmd.ExecuteReader();

        // 递归加载数据到TreeView中
        while (reader.Read())
        {
            LoadDataToTreeView(treeView1.Nodes, reader);
        }
    }
}

private void LoadDataToTreeView(TreeNodeCollection nodes, SqlDataReader reader)
{
    TreeNode node = new TreeNode(reader["ColumnName"].ToString());
    nodes.Add(node);

    // 递归加载子节点数据
    using (SqlConnection conn = new SqlConnection("YourConnectionString"))
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand("SELECT * FROM YourTable WHERE ParentID = @ID", conn);
        cmd.Parameters.AddWithValue("@ID", reader["ID"]);
        SqlDataReader subReader = cmd.ExecuteReader();

        while (subReader.Read())
        {
            LoadDataToTreeView(node.Nodes, subReader);
        }
    }
}

在LoadDataToTreeView方法中,首先创建一个TreeNode对象并添加到指定的节点集合中。然后根据父节点的ID查询子节点数据,并递归调用LoadDataToTreeView方法加载子节点数据。

最后,在Button的Click事件中调用LoadDataToTreeView方法加载根节点数据,实现数据库数据的递归加载到TreeView中。

亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>

推荐阅读:winform treeview怎么递归加载

0