如何使用XML填充DataSet

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

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

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



  

  

  

    

代码如下:
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);

	}

}

你可能感兴趣的:(ASP.NET,XML技术指南,dataset,xml,exception,null,object,数据库)