Alternativ til foreach løkker
HejJeg har lavet et treeview og for at finde alle "punkterne" (i det her tilfælde organisationer) har jeg loopet mig igennem databasen med massere af foreach løkker. Det tror jeg umiddelbart ikke er den smarteste løsning - Derfor søger jeg nu et andet forslag..
Jeg kunne godt tænke mig en rekursiv metode, så hvis det kan lade sig gøre ville det være alletiders..
Lige nu ser alle mine løkker således ud:
foreach (DataRow RowOne in objHT.SelectOrgWhereParentOrgID(OrgID).Rows)
{
TreeNode tnTopOrganisation = new TreeNode();
tnTopOrganisation.Text = RowOne["OrgEnhedLang"].ToString();
tnTopOrganisation.Value = RowOne["OrgID"].ToString();
tnSearchedOrganisation.ChildNodes.Add(tnTopOrganisation);
foreach (DataRow RowTwo in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowOne["OrgID"])).Rows)
{
TreeNode tnFirstUnderOrganisation = new TreeNode();
tnFirstUnderOrganisation.Text = RowTwo["OrgEnhedLang"].ToString();
tnFirstUnderOrganisation.Value = RowTwo["OrgID"].ToString();
tnTopOrganisation.ChildNodes.Add(tnFirstUnderOrganisation);
foreach (DataRow RowThree in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowTwo["OrgID"])).Rows)
{
TreeNode tnSecondUnderOrganisation = new TreeNode();
tnSecondUnderOrganisation.Text = RowThree["OrgEnhedLang"].ToString();
tnSecondUnderOrganisation.Value = RowThree["OrgID"].ToString();
tnFirstUnderOrganisation.ChildNodes.Add(tnSecondUnderOrganisation);
foreach (DataRow RowFour in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowThree["OrgID"])).Rows)
{
TreeNode tnThirdUnderOrganisation = new TreeNode();
tnThirdUnderOrganisation.Text = RowFour["OrgEnhedLang"].ToString();
tnThirdUnderOrganisation.Value = RowFour["OrgID"].ToString();
tnSecondUnderOrganisation.ChildNodes.Add(tnThirdUnderOrganisation);
foreach (DataRow RowFive in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowFour["OrgID"])).Rows)
{
TreeNode tnFourthUnderOrganisation = new TreeNode();
tnFourthUnderOrganisation.Text = RowFive["OrgEnhedLang"].ToString();
tnFourthUnderOrganisation.Value = RowFive["OrgID"].ToString();
tnThirdUnderOrganisation.ChildNodes.Add(tnFourthUnderOrganisation);
foreach (DataRow RowSix in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowFive["OrgID"])).Rows)
{
TreeNode tnFifthUnderOrganisation = new TreeNode();
tnFifthUnderOrganisation.Text = RowSix["OrgEnhedLang"].ToString();
tnFifthUnderOrganisation.Value = RowSix["OrgID"].ToString();
tnFourthUnderOrganisation.ChildNodes.Add(tnFifthUnderOrganisation);
foreach (DataRow RowSeven in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowSix["OrgID"])).Rows)
{
TreeNode tnSixthUnderOrganisation = new TreeNode();
tnSixthUnderOrganisation.Text = RowSeven["OrgEnhedLang"].ToString();
tnSixthUnderOrganisation.Value = RowSeven["OrgID"].ToString();
tnFifthUnderOrganisation.ChildNodes.Add(tnSixthUnderOrganisation);
foreach (DataRow RowEigth in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowSeven["OrgID"])).Rows)
{
TreeNode tnSeventhUnderOrganisation = new TreeNode();
tnSeventhUnderOrganisation.Text = RowEigth["OrgEnhedLang"].ToString();
tnSeventhUnderOrganisation.Value = RowEigth["OrgID"].ToString();
tnSixthUnderOrganisation.ChildNodes.Add(tnSeventhUnderOrganisation);
foreach (DataRow RowNine in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowEigth["OrgID"])).Rows)
{
TreeNode tnEighthUnderOrganisation = new TreeNode();
tnEighthUnderOrganisation.Text = RowNine["OrgEnhedLang"].ToString();
tnEighthUnderOrganisation.Value = RowNine["OrgID"].ToString();
tnSeventhUnderOrganisation.ChildNodes.Add(tnEighthUnderOrganisation);
foreach (DataRow RowTen in objHT.SelectOrgWhereParentOrgID(Convert.ToInt32(RowNine["OrgID"])).Rows)
{
TreeNode tnNineUnderOrganisation = new TreeNode();
tnNineUnderOrganisation.Text = RowTen["OrgEnhedLang"].ToString();
tnNineUnderOrganisation.Value = RowTen["OrgID"].ToString();
tnEighthUnderOrganisation.ChildNodes.Add(tnNineUnderOrganisation);
}
}
}
}
}
}
}
}
}
}