Output the content of a DataSet as XML
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="OutputDataSet" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Outputting a DataSet</title> </head> <body> <form id="form1" runat="server"> <div id="container"> <asp:GridView id="grdProducts" runat="server" /> <hr /> <asp:GridView id="grdCustomer" runat="server" /> <hr /> Retrieving via indexing: <asp:Label ID="labSingle" runat="server" /> <hr /> <asp:Button ID="btnXml" runat="server" Text="Output as XML" OnClick="btnXml_Click" /> <br /> <asp:TextBox ID="txtXml" runat="server" Rows="20" Columns="60" TextMode="MultiLine"/> </div> </form> </body> </html> File: Default.aspx.cs 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; public partial class OutputDataSet : System.Web.UI.Page { DataSet ds = null; protected void Page_Load(object sender, EventArgs e) { ds = new DataSet(); ds.Tables.Add(MakeCustomerData()); ds.Tables.Add(MakeProductData()); ds.Tables[1].TableName = "Products"; grdCustomer.DataSource = ds.Tables[0].DefaultView; grdCustomer.DataBind(); grdProducts.DataSource = ds.Tables["Products"].DefaultView; grdProducts.DataBind(); double sum = 0.0; int count = 0; foreach (DataRow dr in ds.Tables["Products"].Rows) { double price = (double)dr["Price"]; sum += price; count++; } double average = sum / count; labSingle.Text = "Average: " + average; } private DataTable MakeCustomerData() { DataTable table = new DataTable(); DataColumn idCol = new DataColumn(); idCol.ColumnName = "Id"; idCol.DataType = typeof(Int32); idCol.AllowDBNull = false; idCol.Unique = true; idCol.AutoIncrement = true; DataColumn firstNameCol = new DataColumn("FirstName", typeof(string)); DataColumn lastNameCol = new DataColumn("LastName", typeof(string)); DataColumn phoneCol = new DataColumn("Phone", typeof(string)); table.Columns.Add(idCol); table.Columns.Add(firstNameCol); table.Columns.Add(lastNameCol); table.Columns.Add(phoneCol); DataRow r1 = table.NewRow(); r1[1] = "A"; r1[2] = "a"; r1[3] = "123-4567"; table.Rows.Add(r1); DataRow r2 = table.NewRow(); r2["FirstName"] = "B"; r2["LastName"] = "b"; r2["Phone"] = "234-1111"; table.Rows.Add(r2); DataRow r3 = table.NewRow(); r3["FirstName"] = "C"; r3["LastName"] = "c"; r3["Phone"] = "345-444"; table.Rows.Add(r3); DataRow r4 = table.NewRow(); r4["FirstName"] = "D"; r4["LastName"] = "d"; r4["Phone"] = "456-2222"; table.Rows.Add(r4); return table; } private DataTable MakeProductData() { DataTable table = new DataTable(); DataColumn idCol = new DataColumn(); idCol.ColumnName = "Id"; idCol.DataType = typeof(Int32); idCol.AllowDBNull = false; idCol.Unique = true; idCol.AutoIncrement = true; DataColumn nameCol = new DataColumn("Name", typeof(string)); DataColumn priceCol = new DataColumn("Price", typeof(double)); table.Columns.Add(idCol); table.Columns.Add(nameCol); table.Columns.Add(priceCol); DataRow r1 = table.NewRow(); r1[1] = "Book"; r1[2] = 49.99; table.Rows.Add(r1); DataRow r2 = table.NewRow(); r2[1] = "Apple"; r2[2] = 0.99; table.Rows.Add(r2); return table; } protected void btnXml_Click(object sender, EventArgs e) { string s = ds.GetXml(); txtXml.Text = s; } }