比如 : 首页>AAA>BBB 这种格式的
不要给我存储过程,我要一个递归函数create table BigClassStru(BigClassId int,PBigClassId int,BigClassName nvarchar(50))
这是表
比如
BigClassId BigClassName PBigClassId
1 首页 0
2 AAA 1
3 BBB 2
也就是说BBB的父节点是AAA, 因为BBB的PBigClassID = AAA的BigClassID
以此类推然后这个递归函数怎么写呢?我要输出的结果是 首页>AAA>BBB 传一个参数进去(BigClassId)谢谢了
不要给我存储过程,我要一个递归函数create table BigClassStru(BigClassId int,PBigClassId int,BigClassName nvarchar(50))
这是表
比如
BigClassId BigClassName PBigClassId
1 首页 0
2 AAA 1
3 BBB 2
也就是说BBB的父节点是AAA, 因为BBB的PBigClassID = AAA的BigClassID
以此类推然后这个递归函数怎么写呢?我要输出的结果是 首页>AAA>BBB 传一个参数进去(BigClassId)谢谢了
{
int parent=0;
string parentname="";
//根据id开数据库查找其父接点的id并赋值到parent,名称赋值到parentname
if(parent==0)
{
return parentname;
}
else
{
return seek(parent) +">"+ parentname;
}
}
{
//BigClassId = 15;
int parent = 0;
string parentname = "";
string sql = "select BigClassId,BigClassName,PBigClassId from BigClassStru where BigClassId='"+BigClassId+"'";
SqlConnection con = new SqlConnection(ConnectionStr.ConnectionString);
SqlCommand cmd = new SqlCommand(sql, con);
DataTable dt = new DataTable();
//根据id开数据库查找其父接点的id并赋值到parent,名称赋值到parentname
if(dt.Rows[0][2].ToString() == "0")
//if (parent == 0)
{
return dt.Rows[0][1].ToString();
}
else
{
return GetPer(int.Parse(dt.Rows[0][2].ToString())) + ">" + dt.Rows[0][1].ToString();
}
}
看看问题在哪里
{
int parent = 0;
string parentname = "";
string sql = "select BigClassId,BigClassName,PBigClassId from BigClassStru where BigClassId='"+BigClassId+"'";
SqlConnection con = new SqlConnection(ConnectionStr.ConnectionString);
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adp.Fill(dt);
//con.Open();
//cmd.ExecuteNonQuery();
//根据id开数据库查找其父接点的id并赋值到parent,名称赋值到parentname
//return dt.Rows[0][1].ToString();
if (dt.Rows[0][2].ToString() == "0")
{
return dt.Rows[0][1].ToString();
}
else
{
return GetPer(int.Parse(dt.Rows[0][2].ToString())) + ">" + dt.Rows[0][1].ToString();
}
}