November 2003
Intermediate to advanced
476 pages
14h 38m
English
There’s another way to
read XML directly from a database. The
XmlDataDocument, which extends
XmlDocument, presents the contents of a
DataSet as an XML document. At that point, the
data can be treated just like any other
XmlDocument, including navigating to specific
nodes with XPath, writing it to any sort of
Stream, transforming it with XSLT, and in fact any
of the other techniques I’ve shown you in this book.
Example 11-11 shows a program that executes the same
query from example 11-10 and writes the resulting XML to the console.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
public class ReadDataAsXml {
public static void Main(string [ ] args) {
DataSet dataSet = new DataSet("AngusHardware");
SqlConnection connection = new SqlConnection(
"Initial Catalog=AngusHardware; User ID=sa");
string command = "SELECT name, redemption_date, total_discount " +
"FROM coupon_redemptions a, customers b " +
"WHERE a.customer_id = b.customer_id";
SqlDataAdapter adapter = new SqlDataAdapter(command, connection);
adapter.Fill(dataSet, "CouponsRedeemed");
XmlDataDocument doc = new XmlDataDocument(dataSet);
XmlTextWriter writer = new XmlTextWriter(Console.Out);
writer.Formatting = Formatting.Indented;
doc.WriteTo(writer);
}
}You’ve seen most of this before, but
here’s a quick look at some of the more important
steps. First, you create the DataSet, the
SqlConnection, a SQL select command, ...