c#中生成目录树 treeview
表结构如下:mytable
_________________________________________________________________________
OrgID/单位ID OrgName/单位名称 UpperOrgID/上级单位ID
A001 省教育厅 0 -----表示是顶级单位
A002 XX大学 A001
A003 XX大学理学院 A002
A004 YY大学 A001
_________________________________________________________________________
想实现的TreeView如下:
-省教育厅
-XX大学
--XX大学理学院
-YY大学
--XX大学理学院
----------------------------------------
代码如下,小弟运行后,树目录不显示。请问为什么?
谢谢
---------------------------------------
private void CreateTree()
{
string str = "Data Source=ECE-6D6D44DE2AD;Initial Catalog=Kqdb;Integrated Security=True";//数据库连接
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand sqlcom = new SqlCommand("Select * from mytable where UpperOrgID='0'", conn);
try
{
conn.Open();
SqlDataReader sqlreader = sqlcom.ExecuteReader();
while (sqlreader.Read())
{
TreeNode mynode = new TreeNode();
mynode.Text = sqlreader.GetString(2);
mynode.Tag = sqlreader.GetValue(1).ToString() + '|' + sqlreader.GetValue(2).ToString() + '|' + sqlreader.GetValue(3).ToString() + '|' + sqlreader.GetValue(0).ToString();
treeView1.Nodes.Add(mynode);
NextTree(sqlreader.GetValue(0).ToString(), treeView1.Nodes[0]);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}
private void NextTree(string nodeid, TreeNode parentnode)
{
string str = "Data Source=ECE-6D6D44DE2AD;Initial Catalog=Kqdb;Integrated Security=True";//数据库连接
SqlConnection conn = new SqlConnection(str);
SqlCommand sqlcom = new SqlCommand("Select * from mytable where UpperOrgID='" + nodeid + "'",conn);
try
{
conn.Open();
SqlDataReader sqlreader = sqlcom.ExecuteReader();
while (sqlreader.Read())
{
TreeNode mynode = new TreeNode(sqlreader.GetString(2));
parentnode.Nodes.Add(mynode);
mynode.Tag = sqlreader.GetValue(1).ToString() + '|' + sqlreader.GetValue(2).ToString() + '|' + sqlreader.GetValue(3).ToString() + '|' + sqlreader.GetValue(0).ToString();
NextTree(sqlreader.GetValue(0).ToString(), mynode);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}