根据一个数据表生成无限级的XML格式的菜单
2004-08-25 11:04
525 查看
数据表:
ID Name ParentID
1 文件 0
2 打开 1
3 新建 1
4 打开文件 2
5 打开工程 2
6 编辑 0
7 新建文件 3
8 新建工程 3
9 新建文本文件 7
10 新建程序文件 7
源程序:
using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
public class Menu
{
private static SqlConnection conn = new SqlConnection("server=walter;uid=sa;password=sa;database=test");
public static void Main(string [] args)
{
XmlTextWriter xw = new XmlTextWriter("Menu.xml",System.Text.Encoding.GetEncoding("GB2312"));
xw.Formatting = Formatting.Indented;
xw.WriteStartDocument();
xw.WriteStartElement("MenuItems");
conn.Open();
Menu m = new Menu();
m.CreateMenu(xw,0);
xw.WriteEndElement();
xw.WriteEndDocument();
xw.Close();
}
public void CreateMenu(XmlTextWriter xw,int ParentID)
{
SqlDataAdapter cmd = new SqlDataAdapter("select * from Menu where ParentID=" + ParentID.ToString(),conn);
DataSet ds = new DataSet();
cmd.Fill(ds,"t");
foreach(DataRow dr in ds.Tables["t"].Rows)
{
xw.WriteStartElement("MenuItem");
xw.WriteAttributeString("Text",dr[1].ToString());
CreateMenu(xw,Int32.Parse(dr[0].ToString()));
xw.WriteEndElement();
}
}
}
ID Name ParentID
1 文件 0
2 打开 1
3 新建 1
4 打开文件 2
5 打开工程 2
6 编辑 0
7 新建文件 3
8 新建工程 3
9 新建文本文件 7
10 新建程序文件 7
源程序:
using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
public class Menu
{
private static SqlConnection conn = new SqlConnection("server=walter;uid=sa;password=sa;database=test");
public static void Main(string [] args)
{
XmlTextWriter xw = new XmlTextWriter("Menu.xml",System.Text.Encoding.GetEncoding("GB2312"));
xw.Formatting = Formatting.Indented;
xw.WriteStartDocument();
xw.WriteStartElement("MenuItems");
conn.Open();
Menu m = new Menu();
m.CreateMenu(xw,0);
xw.WriteEndElement();
xw.WriteEndDocument();
xw.Close();
}
public void CreateMenu(XmlTextWriter xw,int ParentID)
{
SqlDataAdapter cmd = new SqlDataAdapter("select * from Menu where ParentID=" + ParentID.ToString(),conn);
DataSet ds = new DataSet();
cmd.Fill(ds,"t");
foreach(DataRow dr in ds.Tables["t"].Rows)
{
xw.WriteStartElement("MenuItem");
xw.WriteAttributeString("Text",dr[1].ToString());
CreateMenu(xw,Int32.Parse(dr[0].ToString()));
xw.WriteEndElement();
}
}
}
相关文章推荐
- 根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考)
- ASP.NET基础教程-Web 自定义控件的使用-根据属性值从数据库中提取数据并在页面上自动生成一个表格
- 根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考
- 根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考)
- 根据表中数据动态生成菜单
- sql根据一个表的数据生成插入脚本
- 根据表中数据动态生成菜单(三)
- 根据一个表的数据生成插入脚本
- 根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考
- java 使用itextpdf.jar和itext-asian.jar根据pdf模板填写数据后生成一个新的pdf文件
- mysql 生成随机时间 mysql 统计数量并根据最后面一个数据的时间排序
- Android中pull解析和生成xml数据到一个字符串中
- 从数据库中调用数据生成rar文件(自己的一个小实例)
- lazy-mock ,一个生成后端模拟数据的懒人工具
- T-SQL 存储过程: (修订版) 根据基本表结构及其数据生成 INSERT INTO ... 的 SQL
- dwz根据json数据动态生成树
- 在winform中根据数据库信息动态生成菜单
- jQuery 根据JSON数据动态生成表格
- 一个不被flash、select、activex遮挡的、跨frame的无限分级菜单