B
Balda
Пишу в MS VS .NET 2008 на C#.
В БД есть таблица состоящая из трех столбцов: ID, Name, ID_Parent. По данным из этой таблицы нужно построить дерево.
Загоняю эту таблицу в dataSet и потом строю дерево так:
Всё работает, но ДОЛГО. На старых машинах процесс создания дерева занимает минут 5, что очень не нравиться пользователям.
Подскажите, пожалуйста, как оптимизировать мой метод или как ещё можно создать дерево по данным из таблицы.
Главное чтобы работало всё быстро и правильно.
В БД есть таблица состоящая из трех столбцов: ID, Name, ID_Parent. По данным из этой таблицы нужно построить дерево.
Загоняю эту таблицу в dataSet и потом строю дерево так:
Код:
private void Form14_Load(object sender, System.EventArgs e)
{
FillTreeRecurs(this.treeView1.Nodes,0);
}
private void FillTreeRecurs(TreeNodeCollection tnc, int parent)
{
System.Data.DataView dv = new DataView(dataSet1.Tables[0]);
dv.RowFilter = "ID_Parent = "+parent.ToString();
foreach( System.Data.DataRowView drw in dv )
{
if ((int) drw["ID"] != parent)
{
TreeNode tn = new TreeNode(drw["Name"].ToString());
tnc.Add(tn);
FillTreeRecurs(tn.Nodes, (int) drw["ID"]);
}
}
}
Всё работает, но ДОЛГО. На старых машинах процесс создания дерева занимает минут 5, что очень не нравиться пользователям.
Подскажите, пожалуйста, как оптимизировать мой метод или как ещё можно создать дерево по данным из таблицы.
Главное чтобы работало всё быстро и правильно.