private void Form1_Load( object sender, EventArgs e) ... { file_table(); creat_tree("产品列表"); } System.Data.DataSet ds = new DataSet(); void file_table() ... { System.Data.Odbc.OdbcConnection myconn = new System.Data.Odbc.OdbcConnection(strtest); myconn.Open(); System.Data.Odbc.OdbcCommand mycomm = new System.Data.Odbc.OdbcCommand(); mycomm.Connection = myconn; mycomm.CommandText = "select label_id, label_name,label_root_id from label "; System.Data.Odbc.OdbcDataAdapter adp = new System.Data.Odbc.OdbcDataAdapter(); adp.SelectCommand = mycomm; adp.Fill(ds, "tree_table"); } void creat_tree( string root) ... { TreeNode tnNew = treeView.Nodes[root]; tnNew.Tag = 0; read_treenode(tnNew); } void read_treenode( TreeNode tnParent) ... { TreeNode tnNew = null; foreach (DataRow dr in ds.Tables["tree_table"].Rows) ...{ if (dr["label_root_id"].ToString() == tnParent.Tag.ToString()) ...{ tnNew = tnParent.Nodes.Add(dr["label_name"].ToString(), dr["label_name"].ToString()); tnNew.Tag = dr["label_id"].ToString(); read_treenode( tnNew); } } }