#region 得到树形根目录
public void get_directory()
{
try
{ tree_list.Nodes.Clear();
DataTable dt = organize.select_ORG();//调用SQL语句
DataRow[] rows = dt.Select("ParentOrgid=0");//添加SQL条件
foreach (DataRow dr in rows)//循环赋值给DataRow
{
TreeNode node = new TreeNode();
node.Tag = dr;
node.Text = dr["Orgname"].ToString();
tree_list.Nodes.Add(node);
get_subcatalog(node);
}
tree_list.ExpandAll();
}
catch (Exception ex)
{
MessageBox.Show("获取父节点出错" + ex.Message, "提示信息");
} }
#endregion #region 得到树形子目录
public void get_subcatalog(TreeNode fnode)
{
try
{
DataTable dt = organize.select_ORG();
DataRow dr = (DataRow)fnode.Tag;//获取根节点的ID
int f_id = (int)dr["Orgid"];
DataRow[] rows = dt.Select("ParentOrgid=" + f_id);//SQL语句加入条件进行查询
if (rows.Length == 0)//集合是否有值
{
return;
}
foreach (DataRow Drows in rows)
{
TreeNode node = new TreeNode();
node.Tag = Drows;
node.Text = Drows["Orgname"].ToString();
//添加子节点
fnode.Nodes.Add(node);
get_Personnel(node);
}
}
catch (Exception ex)
{ MessageBox.Show("获取子节点出错" + ex.Message, "提示信息");
} }
#endregion public void get_Personnel(TreeNode fnode)
{
try
{
DataTable dt = person.select_ORG();
DataRow dr = (DataRow)fnode.Tag;//获取根节点的ID
int f_id = (int)dr["Orgid"];
DataRow[] rows = dt.Select("Orgid=" + f_id);//SQL语句加入条件进行查询
if (rows.Length == 0)//集合是否有值
{
return;
}
foreach (DataRow Drows in rows)
{
TreeNode node = new TreeNode();
node.Tag = Drows;
node.Text = Drows["Personname"].ToString();
fnode.Nodes.Add(node);
get_Personnel(node);
}
}
catch (Exception ex)
{ MessageBox.Show("获取人员姓名出错" + ex.Message, "提示信息");
}
}
为得到每机构下的人员 机构和人员属于主外键关系 目前可以得到机构的无限极,但是人员等不到 谢谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货