java id pid 递归_递归调用(id,pid,name)根据一个id获取它所有的子节点

用c#做的

public List list = new List();//把所有的id都装入list中

SqlConnection con=null;

private void button1_Click(object sender, EventArgs e)//测试方法

{

GetIdsByName("软件");

}

//根据name获取ID      public void GetIdsByName(String name)

{

con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=BBS;Integrated Security=True");

String sql = "select boardID from Board where boardName='"+name+"'";//根据A查询得到ID

con.Open();

SqlCommand cmd = new SqlCommand(sql ,con);

int id=Convert.ToInt32(cmd.ExecuteScalar());

getIDs(id);//去查它的子ids

con.Close();

}

public void getIDs(int id)//根据一个id查找它下面所有的子ID

{

String childsql = "select boardID from Board where parentId=" + id;// 根据父id查出它的所有子ID

SqlCommand ccmd = new SqlCommand(childsql, con);

SqlDataReader reader = ccmd.ExecuteReader();

List ids = new List();

while(reader.Read())

{

ids.Add(Convert.ToInt32(reader[0]));//把ids放入集合java中不用,C#中为了下面遍历用

list.Add(Convert.ToInt32(reader[0]));//添加到指定集合中

// getIDs(Convert.ToInt32(reader[0]));//在java里可以直接调用

}

reader.Close();

//在java里就不用了

foreach (int cid in ids)

{

getIDs(cid);//递归调用            }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值