本文說明如何創建DataSet 對象,以及如何使用WriteXML方法將該對象包含的數據導出到 XML 文件中。生成的 XML 文件可以直接在 Excel 中打開。為便於說明,使用 Jet OLEDB 提供程序從 Microsoft Access Northwind 示例數據庫創建了DataSet 對象。但是,類似的代碼可與您使用 Visual C# .NET 創建的任何DataSet 對象一起使用。
1. 啟動 Microsoft Visual Studio .NET。在文件菜單上,單擊新建,然後單擊項目。從 Visual C# 項目類型中選擇Windows 應用程序。默認情況下創建 Form1。
2. 在視圖菜單上,選擇工具箱以顯示“工具箱”,然後向 Form1 中添加一個按鈕。
3. 雙擊Button1。將出現該窗體的代碼窗口。
4. 將下面的using 指令添加到 Form1.cs 頂部:
using System.Data.OleDb; using System.Xml;
//Connect to the data source. OleDbConnection objConn = new OleDbConnection (strConn); try { objConn.Open(); //Fill a dataset with records from the Customers table. OleDbCommand objCmd = new OleDbCommand( "Select CustomerID, CompanyName, ContactName, " + "Country, Phone from Customers", objConn); OleDbDataAdapter objAdapter = new OleDbDataAdapter(); objAdapter.SelectCommand = objCmd; DataSet objDataset = new DataSet(); objAdapter.Fill(objDataset); //Create the FileStream to write with. System.IO.FileStream fs = new System.IO.FileStream( "C:\Customers.xml", System.IO.FileMode.Create); //Create an XmlTextWriter for the FileStream. System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter( fs, System.Text.Encoding.Unicode); //Add processing instructions to the beginning of the XML file, one //of which indicates a style sheet. xtw.WriteProcessingInstruction("xml", "version=1.0"); //xtw.WriteProcessingInstruction("xml-stylesheet", // "type=text/xsl href=customers.xsl"); //Write the XML from the dataset to the file. objDataset.WriteXml(xtw); xtw.Close(); //Close the database connection. objConn.Close(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); }
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <HTML> <HEAD> <STYLE> .HDR { background-color:bisque;font-weight:bold } </STYLE> </HEAD> <BODY> <TABLE> <COLGROUP WIDTH="100" ALIGN="CENTER"></COLGROUP> <COLGROUP WIDTH="200" ALIGN="LEFT"></COLGROUP> <COLGROUP WIDTH="200" ALIGN="LEFT"></COLGROUP> <COLGROUP WIDTH="100" ALIGN="LEFT"></COLGROUP> <COLGROUP WIDTH="100" ALIGN="LEFT"></COLGROUP> <TD CLASS="HDR">Customer ID</TD> <TD CLASS="HDR">Company</TD> <TD CLASS="HDR">Contact</TD> <TD CLASS="HDR">Country</TD> <TD CLASS="HDR">Phone</TD> <xsl:for-each select="NewDataSet/Table"> <TR> <TD><xsl:value-of select="CustomerID"/></TD> <TD><xsl:value-of select="CompanyName"/></TD> <TD><xsl:value-of select="ContactName"/></TD> <TD><xsl:value-of select="Country"/></TD> <TD><xsl:value-of select="Phone"/></TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet>