热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> .Net编程>>正文内容

ASP.NET把DataTable转成XML文件的函数

发布时间:2010年01月10日点击数: 未知

下面我将用ASP.NET把DataTable的数据转成XML格式,并输出生成XML文件。
数据库表position有三个字段:
字段名 字段类型
position_id int
position_name varchar
position_desc varchar
下面是Datatable转XML的生成源码:

  1. protected void Page_Load(object sender, EventArgs e) 
  2.        { 
  3.            //通过数据访问层把position读取到Datatable 
  4.            BizRules.PersonnelDAL pl = new PersonnelDAL(); 
  5.            DataTable dt = pl.Getposition(); 
  6.            StringBuilder str = new StringBuilder(); 
  7.            str.Append(DataTableToXml(dt)); 
  8.            this.CreateXml(str.ToString(), "test.xml"); 
  9.            Response.Write("生成test.xml成功"); 
  10.        } 
  11.  
  12.        /// <summary> 
  13.        /// 生成文件 
  14.        /// </summary> 
  15.        /// <param name="val"></param> 
  16.        /// <param name="filename"></param> 
  17.        public void CreateXml(string val, string filename) 
  18.        { 
  19.            UnicodeEncoding ucode = new UnicodeEncoding(); 
  20.            StreamWriter sw = new StreamWriter(Server.MapPath(filename)); 
  21.            sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); 
  22.            sw.WriteLine(val); 
  23.            sw.Close(); 
  24.            sw.Dispose(); 
  25.        } 
  26.  
  27.        /// <summary> 
  28.        /// 转换成XML格式字符串 
  29.        /// </summary> 
  30.        /// <param name="dt"></param> 
  31.        /// <returns></returns> 
  32.        public string DataTableToXml(DataTable dt) 
  33.        { 
  34.            StringBuilder strXml = new StringBuilder(); 
  35.            strXml.AppendLine("<XmlTable>"); 
  36.            for (int i = 0; i < dt.Rows.Count; i  ) 
  37.            { 
  38.                strXml.AppendLine("    <rows>"); 
  39.                for (int j = 0; j < dt.Columns.Count; j  ) 
  40.                { 
  41.                    strXml.AppendLine("        <"   dt.Columns[j].ColumnName   ">"   dt.Rows[i][j]   "</"   dt.Columns[j].ColumnName   ">"); 
  42.                } 
  43.                strXml.AppendLine("    </rows>"); 
  44.            } 
  45.            strXml.AppendLine("</XmlTable>"); 
  46.            return strXml.ToString(); 
  47.        } 

下面看下生成XML文件的效果:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <XmlTable> 
  3.  <rows> 
  4.   <position_id>29</position_id> 
  5.   <position_name>业务员</position_name> 
  6.   <position_desc></position_desc> 
  7.  </rows> 
  8.  <rows> 
  9.   <position_id>30</position_id> 
  10.   <position_name>业务经理</position_name> 
  11.   <position_desc></position_desc> 
  12.  </rows> 
  13.  <rows> 
  14.   <position_id>31</position_id> 
  15.   <position_name>业务总监</position_name> 
  16.   <position_desc></position_desc> 
  17.  </rows> 
  18. </XmlTable> 

如果你使用DataSet,可以把DataSet转成Datatable,再使用上面的方法就可以了。

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作