波拿巴上尉

napor001的博客

asp.net2.0 利用Dataset,从数据库导出并生成无限级类别的XML文件

数据表结构如下:

ID:自增标识ID,
ParentID:父级ID,
ClassName:类别名称

CS代码如下:

 public DataSet ds = new DataSet();
    
public DataTable dt;
    XmlDocument xmlDoc 
= new XmlDocument();

    
protected void Page_Load(object sender, EventArgs e)
    
...{
        SqlConnection con 
= new SqlConnection("Data Source=HN;Initial Catalog=yiming;User ID=sa;Password=sa"); 

        SqlDataAdapter ad 
= new SqlDataAdapter("select * from class", con);
        ad.Fill(ds, 
"class");
        dt 
= ds.Tables["class"];
      
        xmlDoc.Load(Server.MapPath(
"~/xml.xml"));
        XmlNode root 
= xmlDoc.SelectSingleNode("Root"); //查找<rootTreenode>
        
//删除初根节点外的所有节点。
        root.RemoveAll();

        DataRow[] drs 
= dt.Select("parentID=0");
        
foreach (DataRow r in drs)
        
...{
            XmlElement treenode1 
= (XmlElement)root;

            treenode1.SetAttribute(
"Node_ID", r["ID"].ToString());
            treenode1.SetAttribute(
"Father_ID", r["parentid"].ToString());
            treenode1.SetAttribute(
"NodeName", r["classname"].ToString());

            NodeEach(r[
"id"].ToString(), treenode1);
        }

        xmlDoc.Save(Server.MapPath(
"~/xml.xml"));

        Response.Write(count.ToString());
    }


    
public void NodeEach(string id, XmlNode treenode)
    
...{
        DataRow[] drs 
= dt.Select("parentID=" + id);
        
foreach (DataRow r in drs)
        
...{
            XmlElement treenode2 
= xmlDoc.CreateElement("treenode"); //创建一个<treenode>节点
            treenode2.SetAttribute("Node_ID", r["ID"].ToString());
            treenode2.SetAttribute(
"Father_ID", r["parentid"].ToString());
            treenode2.SetAttribute(
"NodeName", r["classname"].ToString());
            treenode.AppendChild(treenode2);

            NodeEach(r[
"id"].ToString(), treenode2);
        }


    }
阅读更多
个人分类: DotNET
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

asp.net2.0 利用Dataset,从数据库导出并生成无限级类别的XML文件

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭