如何使用XML填充DataSet

要求:把XML文件中的数据转换为DataSet对象,然后用GridView数据库控件显示出来。

方法:页面初始化调用GetDataSet()函数,然后创建保存数据的DataSet对象ds和DataTable对象的dataTable,在从XML文件xmlfile.xml中读取数据,并添加到对象dataTable中,最后使用dataTable填充DataSet对象ds,最后进行GridView绑定。

xmlfile.xml文件内容格式如下:

<?xml version="1.0"?>

<Users>  

  <Users UserID="1" UserName="WuWei" RealName="无为" CreateDate="2008-06-24"/>

  <Users UserID="2" UserName="CongHua" RealName="葱花" CreateDate="2008-06-24"/>

  <Users UserID="3" UserName="YangYang" RealName="样样" CreateDate="2008-06-24"/>  

</Users>
代码如下:
using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Xml;



public partial class XmlToDS : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

		if(!Page.IsPostBack)

		{

			///获取数据

			DataSet ds = GetDataSet();

			///绑定控件的数据

			MyGridView.DataSource = ds;

			MyGridView.DataBind();

		}

    }

	private DataSet GetDataSet()

	{   ///创建DataSet

		DataSet ds = new DataSet();

		///创建DataTable

		DataTable dataTable = new DataTable("Users");

        dataTable.Columns.Add("UserID", typeof(int));//dataTable.Columns获取该表列的集合

		dataTable.Columns.Add("UserName");

		dataTable.Columns.Add("RealName");

		dataTable.Columns.Add("CreateDate",typeof(DateTime));	

		try

		{   ///导入XML文件

			XmlDocument doc = new XmlDocument();//XmlDocument类表示XML文档,它继承System.XML。

            doc.Load(Server.MapPath("xmlfile.xml"));//加载指定的 XML 数据。

			if(doc == null)

			{

				return null;

			}

			///读取XML文件

            XmlNodeList nodeList = doc.SelectNodes("/Users/Users");//XmlNodeList表示排序的节点集合。 doc.SelectNodes()返回一个 XmlNodeList。

			foreach(XmlNode node in nodeList)

			{   ///读取每一行的数据

				DataRow row = dataTable.NewRow();

                row["UserID"] = Convert.ToInt32(node.Attributes["UserID"].Value);//通过XmlNode.Attributes属性,获取一个 XmlAttributeCollection,它包含该节点的属性。

				row["UserName"] = node.Attributes["UserName"].Value;

				row["RealName"] = node.Attributes["RealName"].Value;

				row["CreateDate"] = Convert.ToDateTime(node.Attributes["CreateDate"].Value);

				dataTable.Rows.Add(row);

			}

		}

		catch(Exception ex)

		{   ///抛出异常

			throw new Exception(ex.Message,ex);

		}

		ds.Tables.Add(dataTable);

		return (ds);

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值