Оптимизирование кривого кода - C#
Формулировка задачи:
Пытаюсь построить дерево по таблице БД
В БД есть поля S/N, Parent
public void button3_Click(object sender, EventArgs e)
{
DataSet ds = GetSwitchAndPort();
foreach (DataRow row in ds.Tables["Switch"].Rows)
{
SetTextInNewTreeNode(treeView1, row.ItemArray.GetValue(6).ToString().Trim(), row.ItemArray.GetValue(0).ToString().Trim());
}
}private void SetTextInNewTreeNode(TreeView tv,string nameSearch,string TextSet)
{
if (nameSearch != "")
{
foreach (TreeNode tn in tv.Nodes)
{
if (tn.Text.Trim() == nameSearch)
treeView1.Nodes[tn.Index].Nodes.Add(TextSet);
else
{
if( tn.FirstNode.Text==nameSearch)
{
treeView1.Nodes[tn.Index].Nodes[tn.Index].Nodes.Add(TextSet);
}
else
{
if (tn.FirstNode.FirstNode.Text == nameSearch)
{
treeView1.Nodes[tn.Index].Nodes[tn.Index].Nodes[tn.Index].Nodes.Add(TextSet);
}
else
{
if (tn.FirstNode.FirstNode.FirstNode.Text == nameSearch)
{
treeView1.Nodes[tn.Index].Nodes[tn.Index].Nodes[tn.Index].Nodes[tn.Index].Nodes.Add(TextSet);
}
else
{
if (tn.FirstNode.FirstNode.FirstNode.FirstNode.Text == nameSearch)
{
treeView1.Nodes[tn.Index].Nodes[tn.Index].Nodes[tn.Index].Nodes[tn.Index].Nodes[tn.Index].Nodes.Add(TextSet);
}
}
}
}
}
}
}
else
{
//create
tv.Nodes.Add(TextSet);
}Решение задачи: «Оптимизирование кривого кода»
textual
Листинг программы
treeView1.Nodes.Clear();
treeView1.Nodes.AddRange(GetRowsByParent("").Select(CreateNode).ToArray());