页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WriteXML.aspx.cs" Inherits="WriteXML" %>
<!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 runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
ConnecionString:
<asp:TextBox ID="TextBox1" runat="server" Height="70px" Width="531px"></asp:TextBox><br />
Table Name:
<asp:TextBox ID="TextBox2" runat="server" Height="48px" Width="525px"></asp:TextBox><br />
Destination File Name:
<asp:TextBox ID="TextBox3" runat="server" Height="56px" Width="519px"></asp:TextBox><br />
</div>
<asp:RadioButton ID="RadioButton1" Text="Columns as elements" runat="server" GroupName="ExportType" />
<br />
<asp:RadioButton ID="RadioButton2" Text="Columns as attributes" runat="server" GroupName="ExportType" />
<br />
<asp:Button ID="Button1" runat="server" Height="31px" Text="Export Data" Width="134px"
OnClick="Button1_Click" />
</form>
</body>
</html>
执行代码:
1: using System;
2: using System.Data.SqlClient;
3: using System.Xml;
4:
5: public partial class WriteXML : System.Web.UI.Page
6: {
7: protected void Page_Load(object sender, EventArgs e)
8: {
9:
10: }
11: protected void Button1_Click(object sender, EventArgs e)
12: {
13: SqlConnection cnn = null;
14: SqlCommand cmd = null;
15: SqlDataReader reader = null;
16: XmlTextWriter writer = null;
17: try
18: {
19: cnn = new SqlConnection(TextBox1.Text);
20: cmd = new SqlCommand();
21: cmd.Connection = cnn;
22: cmd.CommandText = "select * from " + TextBox2.Text;
23: cnn.Open();
24: reader = cmd.ExecuteReader();
25: writer = new XmlTextWriter(TextBox3.Text, null);
26: writer.WriteStartDocument();
27: writer.WriteComment("File exported on " + DateTime.Now);
28: writer.WriteStartElement("table");
29: while (reader.Read())
30: {
31: if (RadioButton1.Checked)
32: {
33: writer.WriteStartElement("row");
34: for (int i = 0; i < reader.FieldCount; i++)
35: {
36: writer.WriteStartElement(reader.GetName(i));
37: writer.WriteString(reader.GetValue(i).ToString());
38: writer.WriteEndElement();
39: }
40: writer.WriteEndElement();
41: }
42: else
43: {
44: writer.WriteStartElement("row");
45: for (int i = 0; i < reader.FieldCount; i++)
46: {
47: writer.WriteAttributeString(reader.GetName(i),
48: reader.GetValue(i).ToString());
49: }
50: writer.WriteEndElement();
51: }
52: }
53: writer.WriteEndElement();
54: }
55: catch (Exception ex)
56: {
57: Response.Write(ex.Message);
58: }
59: finally
60: {
61: writer.Close();
62: reader.Close();
63: cnn.Close();
64: }
65: }
66: }
执行效果和结果:
columns as elements:
colunms as attributes: