(经典)关于 使用递归从数据库读取数据来动态建立菜单 的有关问题
(经典)关于 使用递归从数据库读取数据来动态建立菜单 的问题
表结构与内容
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
表结构与内容
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