private void testMenu (MenuItem menuitem,int iLev)
{
string szCon = "Initial Catalog=REGSYSTEM;Data Source=ROCK;User ID=sa;Password=sa";
myConnection = new  SqlConnection(szCon);
myCommand = new  SqlDataAdapter("select SortName," + "Lv" + Convert.ToString(iLev) + " from treenode order by sortid",myConnection);
//add
cmd.CommandText=("select SortName," + "Lv" + Convert.ToString(iLev) + " from treenode order by sortid");
cmd.Connection=myConnection;
myCommand.SelectCommand=cmd;

ds=new DataSet();
myCommand.Fill(ds);
foreach(MenuItem menu in menuitem.MenuItems)
{
if (menuitem.MenuItems.Count < 1) break;
else
{
for (int k = 0; k < ds.Tables[0].Rows.Count; k++)
{
string szText = ds.Tables[0].Rows[k]["SortName"].ToString();
if ((int)ds.Tables[0].Rows[k]["Lv" + iLev.ToString()] == 0)
{
if (menu.Text == szText)
{
menu.Visible = false;
}
}
if ((int)ds.Tables[0].Rows[k]["Lv" + iLev.ToString()] == 1)
{
if (menu.Text == szText)
{
menu.Visible = true;
}
}
}
// MessageBox.Show(menu.Text);
this.testMenu(menu,iLev);
}
}
}
private void button1_Click(object sender, System.EventArgs e)
{
for (int i = 0; i < this.mainMenu1.MenuItems.Count; i++)
{
testMenu(this.mainMenu1.MenuItems[i],0);
}
}这个是我的代码,菜单的第一级不能遍历,所以结果都是错的!