以下為利用資料庫動態產生TreeView結構之完整範例:

 

 

ArrayList array_treeNode_Lv1 = new ArrayList(); // 暫存Lv1

// 連接資料庫(T-SQL)
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
//搜尋Lv1的欄位
cmd.CommandText = @"SELECT [id],[name] FROM [folder] WHERE [visible] = 1 ORDER BY [order]";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()){
	TreeNode newNode_Lv1 = new TreeNode();
	newNode_Lv1.Text = reader["name"].ToString();
	newNode_Lv1.Value = reader["id"].ToString();
	array_treeNode_Lv1.Add(newNode_Lv1);
}
reader.Close();


//加入各個欄位的子資料
foreach (TreeNode Node_Lv1 in array_treeNode_Lv1)
{
	cmd.Parameters.Clear();
	cmd.CommandText = @"SELECT * FROM [workFileMark] WHERE [folder] = @folder";
	cmd.Parameters.AddWithValue("folder", Node_Lv1.Value);
	reader = cmd.ExecuteReader();
	while (reader.Read()){
		TreeNode newNode_Lv2 = new TreeNode();
		newNode_Lv2.Text = reader["name"].ToString();
		newNode_Lv2.Value = reader["oid"].ToString();
		Node_Lv1.ChildNodes.Add(newNode_Lv2);
	}
	reader.Close();
}
conn.Close();

//將所有Lv-n放入TreeView (控制項)
foreach (TreeNode Node_Lv1 in array_treeNode_Lv1)
{
	Node_Lv1.ExpandAll();
	Node_Lv1.SelectAction = TreeNodeSelectAction.None;
	TreeView1.RootNodeStyle.ForeColor = System.Drawing.Color.Black;
	TreeView1.Nodes.Add(Node_Lv1);
}
arrow
arrow
    文章標籤
    .net
    全站熱搜
    創作者介紹
    創作者 Lung-Yu,Tsai 的頭像
    Lung-Yu,Tsai

    Lung-Yu,Tsai 的部落格

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()