62,074
社区成员
发帖
与我相关
我的任务
分享
private int Count = 0; //总个数
private int intcheng = 0; //总层数
protected void btn_UserSelectCh_Click(object sender, EventArgs e) //计算下线的按钮
{
SqlConnection con = ConSqlClass.CreateConnection();
con.Open();
string str = "select * from useradmin"; //查询所有用户数据
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand(str, con);
DataSet ds = new DataSet();
sda.Fill(ds, "table"); //把所有数据在表中
DataRow[] drs = ds.Tables[0].Select("upid='" + UserId.UserNum + "'"); //得到上级ID的数据
int all = 0;
intcheng = 6; //一共记算七层。所以intcheng等于六
foreach (DataRow dr in drs) //开始遍历
{
Count = 0;
fillnode(Convert.ToInt32(dr["id"]), ds.Tables[0], 0);
all += Count;
}
this.lb_UserNum.Text = all.ToString();
}
private void fillnode(int id, DataTable dt, int dep) //遍历方法
{
if (dep < intcheng)
{
DataRow[] drs = dt.Select("upid='" + id + "'");
foreach (DataRow dr in drs)
{
Count++;
fillnode(Convert.ToInt32(dr["id"]), dt, dep++);
}
}
}