0

我想使用 button_click 事件使用数据库中的递归数据填充分层树结构

我在表中有以下记录。

bomItem          partId
500101            100200
500101            500100
500101            100280
500100            320255

I want to show Tree as shown below
   500101
     +----100200
     +----500100
           +----300255
     +----100280

// 注意:bomItem是父字段,partId是子字段

我遇到的问题:

  1. 当导航到下一条记录时,保持上一条记录的树结构,当我导航到另一条记录时,我想清除树视图。

  2. 为了显示完整的树结构,我必须先填充孩子的

这是我使用的代码

//按钮点击事件

private void button4_Click(object sender, EventArgs e)
        {

            _command = new SqlCommand("SELECT * FROM [BOMDETAIL] where bomItem= '" + int.Parse(bomItemTextBox.Text) + "' and bomRev= '" + bomRevComboBox.Text + "'", _connection);
            _adapter = new SqlDataAdapter(_command);
            _adapter.Fill(objdataset);
            _connection.Close(); 

            try
            {
                TreeNode node = new TreeNode(bomItemTextBox.Text);

                filltree(node, int.Parse(bomItemTextBox.Text), objdataset);

                treeView2.Nodes.Add(node);

                //dataGridView1.DataSource = objdataset.Tables[0];
            }
            catch (Exception c)
            {

                MessageBox.Show(c.ToString());
            }
        }

//文件树()

 private void filltree(TreeNode parentnode, int parentid, DataSet dataset)

        {

            // Fill Tree Function to poplulate treeeview control

            String str = null;
            try
            {


                foreach (DataRow row in dataset.Tables[0].Rows)
                {
                    if (Convert.ToInt32(row["bomItem"]) == parentid)
                    {
                        str = row["partId"].ToString();
                        TreeNode new_parent_node = parentnode.Nodes.Add(str);
                        int parent_id = Convert.ToInt32(row["partId"]);
                        filltree(new_parent_node, parent_id, dataset);
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

描述问题 1 的图像

4

0 回答 0