递归(抓出某节点下面的所有的子孙节点)----简单版
2008-05-16 14:42
281 查看
string s = ""; //全局变量
string objectguid = "ca4a781c-8052-44c8-bcef-e96f7fd2c8db";
private void Form1_Load(object sender, EventArgs e)
{
string strCon = "server=localhost\\SQLExpress;database=E2;Integrated Security=true";
SqlConnection conn = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter("select ObjectGuid, ParentGuid, InternalID, ID, CompositeKey, Name
from SystemNamespace ORDER BY CompositeKey ASC", conn);
DataSet ds = new DataSet();
da.Fill(ds, "SystemNamespace");
dataGridView1.DataSource = ds.Tables["SystemNamespace"];
for (int i = 0; i < ds.Tables["SystemNamespace"].Rows.Count; i++)
{
if (ds.Tables["SystemNamespace"].Rows[i]["ObjectGuid"].ToString() == objectguid)
{
s += "<" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
s += changetotree(objectguid);
s += "</" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
}
}
}
string changetotree(string obj)
{
string xmlstr = string.Empty;
string strCon = "server=localhost\\SQLExpress;database=E2;Integrated Security=true";
SqlConnection conn = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter("select ObjectGuid, ParentGuid, InternalID, ID, CompositeKey, Name
from SystemNamespace ORDER BY CompositeKey ASC", conn);
DataSet ds = new DataSet();
da.Fill(ds, "SystemNamespace");
for (int i = 0; i < ds.Tables["SystemNamespace"].Rows.Count; i++)
{
if (ds.Tables["SystemNamespace"].Rows[i]["ParentGuid"].ToString() == obj)
{
xmlstr += "<" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
xmlstr += changetotree(ds.Tables["SystemNamespace"].Rows[i]["ObjectGuid"].ToString());
xmlstr += "</" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
}
}
return xmlstr;
}
//先把自己输出,再看有没有孩子,如果有孩子则把所有的孩子输出,否则,把自己关闭-------------很典型的递归应用
string objectguid = "ca4a781c-8052-44c8-bcef-e96f7fd2c8db";
private void Form1_Load(object sender, EventArgs e)
{
string strCon = "server=localhost\\SQLExpress;database=E2;Integrated Security=true";
SqlConnection conn = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter("select ObjectGuid, ParentGuid, InternalID, ID, CompositeKey, Name
from SystemNamespace ORDER BY CompositeKey ASC", conn);
DataSet ds = new DataSet();
da.Fill(ds, "SystemNamespace");
dataGridView1.DataSource = ds.Tables["SystemNamespace"];
for (int i = 0; i < ds.Tables["SystemNamespace"].Rows.Count; i++)
{
if (ds.Tables["SystemNamespace"].Rows[i]["ObjectGuid"].ToString() == objectguid)
{
s += "<" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
s += changetotree(objectguid);
s += "</" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
}
}
}
string changetotree(string obj)
{
string xmlstr = string.Empty;
string strCon = "server=localhost\\SQLExpress;database=E2;Integrated Security=true";
SqlConnection conn = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter("select ObjectGuid, ParentGuid, InternalID, ID, CompositeKey, Name
from SystemNamespace ORDER BY CompositeKey ASC", conn);
DataSet ds = new DataSet();
da.Fill(ds, "SystemNamespace");
for (int i = 0; i < ds.Tables["SystemNamespace"].Rows.Count; i++)
{
if (ds.Tables["SystemNamespace"].Rows[i]["ParentGuid"].ToString() == obj)
{
xmlstr += "<" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
xmlstr += changetotree(ds.Tables["SystemNamespace"].Rows[i]["ObjectGuid"].ToString());
xmlstr += "</" + ds.Tables["SystemNamespace"].Rows[i]["ID"].ToString() + ">" + " ";
}
}
return xmlstr;
}
//先把自己输出,再看有没有孩子,如果有孩子则把所有的孩子输出,否则,把自己关闭-------------很典型的递归应用
相关文章推荐
- java递归获取某个父节点下面的所有子节点
- 递归循环获取指定节点下面的所有子节点
- Sql Server递归查找某一节点下面所有子节点
- 在论坛中出现的比较难的sql问题:21(递归问题 检索某个节点下所有叶子节点)
- asp.net treeview遍历递归获取当前节点所有子级(含子级的子级)
- javascript递归遍历所有DOM文档节点
- 使用递归打印出一个文件夹下所有子孙文件的树形结构
- oracle中生成树中每个节点对应其所有子孙的映射
- php递归无限级分类【先序遍历算】,获取任意节点下所有子孩子
- 无限极分类查找所有子孙节点的改进算法
- 使用mysql存储过程递归tree(如一个上级下面的所有下级的所有下级。。。。)
- 6_43_递归交换二叉树中所有节点的左右子树
- php递归无限级分类【先序遍历算】,获取任意节点下所有子孩子
- 递归删除文件夹下面所有子文件夹中的.pyc后缀文件
- 递归遍历一个文件夹下面的所有文件
- TreeView(一次性递归所有节点)
- 使用递归删除树形结构的所有子节点(java和mysql实现)
- 二叉树中所有节点的左右子树相互交换 递归与非递归程序
- MySQL 存储过程 递归 获取所有子节点
- unity3d 选择一个物体递归输出所有节点名字