Подскажите как при удалении узла из TreeView удалить его из БД. Т.е. нужно выяснить к какой записи в Бд относится выделенный узел.
БД: Tree(Id, Name, ParentId)
вот код запихивания из БД в TreeView:
Код | private void MainForm_Load(object sender, EventArgs e) { SqlDataAdapter DataAdapter = new SqlDataAdapter(comm, conn); DataSet myDataSet = new DataSet(); DataAdapter.Fill(myDataSet, "Tree");
FillTreeView(tvwMain, myDataSet);
}
private void FillTreeView(TreeView treeView, DataSet ds) { treeView.Nodes.Clear(); DataRow[] rows = ds.Tables["Tree"].Select("ParentId = 0"); foreach (DataRow row in rows) { TreeNode newNode = new TreeNode(row["Name"].ToString()); newNode.Tag = row["Id"]; treeView.Nodes.Add(newNode); FillNode(newNode, ds); } }
private void FillNode(TreeNode parentNode, DataSet ds) { DataRow[] rows = ds.Tables["Tree"].Select(string.Format("ParentId = {0}", parentNode.Tag)); foreach (DataRow row in rows) { TreeNode newNode = new TreeNode(row["Name"].ToString()); newNode.Tag = row["Id"]; parentNode.Nodes.Add(newNode); FillNode(newNode, ds); } }
|
Получается что после запихивания я теряю контроль над узлами(не знаю чему они соответствуют в БД). Можно было б по "Name" выяснять(сравнивать с данными из БД), но Name могут совпадать. Если кто знает, подскажите. Заранее пасиб. |