gpt4 book ai didi

ASP.Net/MySQL 多级菜单

转载 作者:行者123 更新时间:2023-11-30 01:30:32 26 4
gpt4 key购买 nike

我正在尝试通过从 MySQL 表检索数据来生成菜单 Web 控件。我已将所有数据存储在数据表中,但到目前为止我只能执行一级。我确信这里一定有一个递归函数,但我不知道如何添加到更深的层次。

这是我到目前为止所做的事情:

    public Menus(Menu menu, int menuId)
{
Database db = new Database("localhost", "dotnetcms", "root");
DataTable data;

query = "SELECT * FROM links WHERE menu_id = " + menuId + " ORDER BY `order`, parent ASC";
queryRows = "SELECT COUNT(*) FROM links WHERE menu_id = " + menuId + " ORDER BY `order`, parent ASC";

data = db.AQuery(query);

foreach (DataRow row in data.Rows)
{
if (row[3] == DBNull.Value)
{
menu.Items.Add(new MenuItem(row[1].ToString()));
}
else
{
AddChildMenus(row, menu.Items[Convert.ToInt32(row[3]) - 1]);
}
}
}

private void AddChildMenus(DataRow dr, MenuItem parent)
{
parent.ChildItems.Add(new MenuItem(dr[1].ToString()));
}

最佳答案

MySQL 不支持递归选择。通过非常有限的级别,您可以在单个查询中完成此操作,在父/子 ID 上重复将表与自身连接起来。

但是,嵌套集模型可能是最好的解决方案。

关于ASP.Net/MySQL 多级菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17526270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com