Como preencher treeview com o caminho do arquivo que é salvo no banco de dados
Suponha que eu tenha salvo o caminho do arquivo no banco de dados. Agora eu quero mostrar esse caminho de arquivo através de treeview. Eu encontrei uma amostra que funciona bem, mas não sei quando haverá dados enormes no banco de dados, em seguida, treeview população será travar ou demorar muito. aqui estou dando o código. por favor, verifique e diga o que pode ser corrigido como resultado, o desempenho será bom quando haverá dados enormes em db.
public static class MyDataBase
{
private static List<string> fields = new List<string>();
public static void AddField(string field)
{
fields.Add(field);
}
public static IList<string> FieldsInMyColumn()
{
return fields;
}
}
public void CreateTreeView()
{
foreach (string field in MyDataBase.FieldsInMyColumn())
{
string[] elements = field.Split('\\');
TreeNode parentNode = null;
for (int i = 0; i < elements.Length - 1; ++i)
{
if (parentNode == null)
{
bool exits = false;
foreach (TreeNode node in myTreeview.Nodes)
{
if (node.Text == elements[i])
{
exits = true;
parentNode = node;
}
}
if (!exits)
{
TreeNode childNode = new TreeNode(elements[i]);
myTreeview.Nodes.Add(childNode);
parentNode = childNode;
}
}
else
{
bool exits = false;
foreach (TreeNode node in parentNode.Nodes)
{
if (node.Text == elements[i])
{
exits = true;
parentNode = node;
}
}
if (!exits)
{
TreeNode childNode = new TreeNode(elements[i]);
parentNode.Nodes.Add(childNode);
parentNode = childNode;
}
}
}
if (parentNode != null)
{
parentNode.Nodes.Add(elements[elements.Length - 1]);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
MyDataBase.AddField(@"c:\jsmith\project1\hello.cs");
MyDataBase.AddField(@"c:\jsmith\project1\what.cs");
MyDataBase.AddField(@"c:\jsmith\project2\hello.cs");
MyDataBase.AddField(@"c:\jsmith\project1\tdp.cs");
MyDataBase.AddField(@"c:\jsmith\project2\ship.cs");
MyDataBase.AddField(@"d:\jsmith\project1\hello404.cs");
MyDataBase.AddField(@"c:\jsmith1\project2\ship.cs");
CreateTreeView();
}
obrigado