以下為利用資料庫動態產生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);
}
文章標籤
全站熱搜