请在asp.net中解决以下问题 [英] please solve below problem in asp .net
本文介绍了请在asp.net中解决以下问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在这样做
i m doing this
protected void Page_Load(object sender, EventArgs e)
{
PopulateMenu();
}
private void PopulateMenu()
{
DataSet ds = GetDataSetForMenu();
Menu menu = new Menu();
foreach (DataRow parentItem in ds.Tables["menu"].Rows)
{
MenuItem categoryItem = new MenuItem((string)parentItem["menu"]);
menu.Items.Add(categoryItem);
foreach (DataRow childItem in parentItem.GetChildRows("Children"))
{
MenuItem childrenItem = new MenuItem((string)childItem["submenu"]);
categoryItem.ChildItems.Add(childrenItem);
foreach (DataRow GrandchildItem in childItem.GetChildRows("GrandChildren"))
{
MenuItem GrandchildrenItem = new MenuItem((string)GrandchildItem["city"]);
childrenItem.ChildItems.Add(GrandchildrenItem);
}
}
}
Panel1.Controls.Add(menu);
Panel1.DataBind();
menu.Orientation = Orientation.Horizontal;
menu.StaticMenuItemStyle.CssClass = "menuItem";
menu.DynamicMenuItemStyle.CssClass = "menuItem";
menu.Width = 800;
// menu.BackColor = System.Drawing.Color.Black;
}
private DataSet GetDataSetForMenu()
{
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlDataAdapter adMenu = new SqlDataAdapter("select * from menu order by id", myConnection);
SqlDataAdapter adSubMenu = new SqlDataAdapter("select * from submenus", myConnection);
SqlDataAdapter adSubSubMenu = new SqlDataAdapter("select * from subsubmenu", myConnection);
DataSet ds = new DataSet();
adMenu.Fill(ds, "Menu");
adSubMenu.Fill(ds, "SubMenu");
adSubSubMenu.Fill(ds, "SubSubMenu");
//object str = ;
ds.Relations.Add("Children",
ds.Tables["menu"].Columns["menu"] ,
ds.Tables["submenus"].Columns["submenu"]
);
ds.Relations.Add("GrandChildren",
ds.Tables["submenus"].Columns["submenu"],
ds.Tables["subsubmenu"].Columns["city"]);
return ds;
}
给出错误
无法启用此约束,因为并非所有值都有对应的父值.
在...
its giving error
This constraint cannot be enabled as not all values have corresponding parent values.
in...
ds.Relations.Add("Children",
ds.Tables["menu"].Columns["menu"] ,
ds.Tables["submenus"].Columns["submenu"]
);
推荐答案
并非子列ds.Tables["submenus"].Columns["submenu"]
中的所有值在父列ds.Tables["menu"].Columns["menu"]
中都具有值.
当子列的值分别为1,2,3,4,5,而父列的值仅为1,2,3,4时,会发生这种情况.
您应该在数据库中强制执行此约束,以便在添加没有父级menu
的submenus
时数据输入将失败.
为此,您的表结构应类似于:
表格菜单":
Not all values in the child columnds.Tables["submenus"].Columns["submenu"]
have a value in the parent columnds.Tables["menu"].Columns["menu"]
.
This happens when the child column has values like 1,2,3,4,5 and the parent column only has the values 1,2,3,4.
You should enforce this constraint in your database so that data entry will fail when addingsubmenus
that do not have a parentmenu
.
For this to work you table structure should look something like:
Table "menus":
ID Menu
1 File
2 Edit
3 Extra
表子菜单":
Table "submenus":
P_ID ID Menu
1 1 Open
1 2 Save
1 3 Close
2 1 Add
2 2 Remove
3 1 Options
这篇关于请在asp.net中解决以下问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文