(经典)关于 使用递归从数据库读取数据来动态建立菜单 的有关问题

(经典)关于 使用递归从数据库读取数据来动态建立菜单 的问题
表结构与内容  

MenBh                         MenText           Bhparent  

0001                           文件                    

0002                           编辑                    

0005                           打开                     0001  

0006                           新建                     0001  

0011                           access数据库     0006  

0012                           VFP的Dbf             0006  

0013                           剪切                     0002  

0014                           复制                     0002  

0015                         完全复制               0014  


Private   m   As   New   MainMenu()  

        Private   Sub   Form1_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                Dim   conn   As   New   SqlConnection( "server=localhost;uid=sa;pwd=;database=jiang ")  
                Dim   cmd   As   New   SqlCommand( "select   *   from   a_menu   ",   conn)  
                Dim   ds   As   New   DataSet()  
                Dim   sqldpr   As   New   SqlDataAdapter(cmd)  

                sqldpr.Fill(ds,   "menu ")  
                Me.DataGrid1.DataSource   =   ds.Tables( "menu ")  

                '创建关系  
                Dim   dr   As   New   DataRelation( "self_menu ",   ds.Tables( "menu ").Columns( "MenBh "),   ds.Tables( "menu ").Columns( "Bhparent "))  
                ds.Relations.Add(dr)  

                Dim   r1   As   DataRow  
                '查找最高的菜单级别,也就是Bhparent列为空的行  
                For   Each   r1   In   ds.Tables( "menu ").Rows