C#再帰実装SQL ServerデータブックのTreeViewへの読み込み


1、SQL Serverデータテーブルを創立して、全部で3列(idとpidは文字列を使わないように注意して、数字のタイプを使う)
id
name
pid
1
一級分類A

2
一級分類B

3
一級分類C

4
一級分類の下の二級分類a
1(上司の行をここに書くことに注意)
5
一級分類下の二級分類b
1(同上)
6
一級分類Bの二級分類a
2(ここに彼の上司がいる行を書くことに注意してください.2)
7
一級分類下の二級分類a下の三級分類a
4(前のレベルの分類がある行を書く)
2、SQL Serverの表をプログラムに読み込んで無視する文章が多すぎる3、再帰呼び出しを確立する
  public void creattree(int fid, TreeNode parentnode)
        {

            DataTable dt = new DataTable();
            dt = OceanData.wellNameData;//                 
            DataRow[] drs = dt.Select("pid=" + fid);//                  
            foreach (DataRow row in drs)
            {
                if (parentnode != null)
                {
                    TreeNode tempnode = new TreeNode();
                    tempnode.Text = row["name"].ToString();
                    tempnode.Name = row["id"].ToString();
                    parentnode.Nodes.Add(tempnode);
                    creattree(Convert.ToInt32(row["id"]), tempnode);
                }
                else
                {
                    TreeNode tempnode = new TreeNode();
                    tempnode.Text = row["name"].ToString();
                    tempnode.Name = row["id"].ToString();
                    treeView1.Nodes.Add(tempnode);
                    creattree(Convert.ToInt32(row["id"]), tempnode);
                }
            }
        }

4、再帰呼び出し
 treeView1.Nodes.Clear();
                creattree(0, (TreeNode)null);