The ASPX Page and XSLT to style the XML from SQL Server (C#) : to XML « ADO.net Database « ASP.NET Tutorial






<%@ Page Language="C#" 
         AutoEventWireup="true" 
         CodeFile="Default.aspx.cs" 
         Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                      
                      
<asp:xml id="Xml1" runat="server" transformsource="~/Data.xslt"/>

File:

using System;
using System.Data;
using System.Data.SqlClient;
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.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string connStr = "database=Northwind;Data Source=.\\SQLEXPRESS;User id=Tom;pwd=password";
        XmlDocument x = new XmlDocument();
        XPathNavigator xpathnav = x.CreateNavigator();
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            conn.Open();
            SqlCommand command = new SqlCommand("select * from Customers as Customer for XML AUTO, ELEMENTS", conn);
            using (XmlWriter xw = xpathnav.PrependChild())
            {
                xw.WriteStartElement("Customers");
                using (XmlReader xr = command.ExecuteXmlReader())
                {
                    xw.WriteNode(xr, true);
                }
                xw.WriteEndElement();
            }
        }
        Xml1.XPathNavigator = xpathnav;
    }
}

File: Data.xslt

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>
    <xsl:template match="/">
        <h3>List of Customers</h3>
        <table border="1">
            <tr>
                <td>Company Name</td><td>Contact Name</td><td>Contact Title</td>
            </tr>
            <xsl:apply-templates select="//Customer"/>
        </table>
    </xsl:template>
    <xsl:template match="Customer">
        <tr>
            <td><xsl:value-of select="CompanyName"/></td>
            <td><xsl:value-of select="ContactName"/></td>
            <td><xsl:value-of select="ContactTitle"/></td>
        </tr>
    </xsl:template>
</xsl:stylesheet>








18.56.to XML
18.56.1.XML query
18.56.2.The ASPX Page and XSLT to style the XML from SQL Server (VB)
18.56.3.The ASPX Page and XSLT to style the XML from SQL Server (C#)
18.56.4.Retrieving XML from SQL Server 2000 using FOR XML AUTO (C#)
18.56.5.Retrieving XML from SQL Server 2000 using FOR XML AUTO (VB)
18.56.6.Run a query against a SQL Server database with an XML typed column. It then displays results in a tree-view.