Заполнение TreeView - C#
Формулировка задачи:
Приведенный ниже код используется у меня для заполнения treeView. Как мне реализовать, что бы каждый элемент дерева хранил в себе информацию не визуально не видимую (см. запрос: O.ID и ParentID), что бы я ее мог считать.
SelectStr = "SELECT O.ID, L.PARENTID AS PARENT, O.ITEMNAME AS NAME " +
"FROM OBJECTS O " +
"INNER JOIN OBJTYPE OT ON (O.TYPEID = OT.ID) " +
"LEFT OUTER JOIN LINKS L ON (O.ID = L.CHILDID) " +
"WHERE OT.CODE = 'Country' OR OT.CODE = 'Area'";
CreateTree(SelectStr);public void CreateTree(string QueryStr)
{
tvMain.Nodes.Clear();
TreeTable.Clear();
DBcmd.CommandText = QueryStr;
DBTrns = DBcmd.Connection.BeginTransaction(IsolationLevel.ReadCommitted);
DBcmd.Transaction = DBTrns;
try
{
if (DBcmd.Connection.State == ConnectionState.Open)
{
TreeTable.Clear();
FbDataReader reader = DBcmd.ExecuteReader();
TreeTable.Load(reader);
CreateTreeNode(tvMain.Nodes, String.Empty);
DBTrns.Commit();
}
else
MessageBox.Show("Нет соединения!");
}
catch
{
DBTrns.Rollback();
}
}private void CreateTreeNode(TreeNodeCollection parentNodes, String parentKey)
{
foreach (DataRow row in TreeTable.Rows)
{
if (row[1].ToString() == parentKey)
{
TreeNode node = new TreeNode(row[2].ToString());
parentNodes.Add(node);
this.CreateTreeNode(node.Nodes, row[0].ToString());
}
}
}Решение задачи: «Заполнение TreeView»
textual
Листинг программы
node.Tag = row[3].ToString();