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、再帰呼び出しを確立する
4、再帰呼び出し
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);