
using System;
using System.Data;
using System.Data.SqlClient;
public partial class DemoWriteXml : System.Web.UI.Page
{
/// <summary>
/// ylb:1,把数据库中的表写成XML文档
/// 数据读取器(DataReader)
/// </summary>
private void WriteXml()
{
string sql = "select top 10 productID,productName,unitPrice from Products";
//string connStr = "Server=.;Database=Northwind;uid=sa;pwd=m123";
string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";
//创建一个虚拟库
DataSet ds = new DataSet("Northwind");
//创建一个虚拟表
DataTable dt = new DataTable("Products");
SqlConnection conn = new SqlConnection(connStr);
SqlCommand com = conn.CreateCommand();
//把sql赋值给com.CommandText
com.CommandText = sql;
//peican
conn.Open();
//execute
try
{
SqlDataReader sdr = com.ExecuteReader();
//向虚拟表中加载数据
dt.Load(sdr);
}
finally
{
conn.Close();
}
//把表添加到库中
ds.Tables.Add(dt);
//写XML文档
ds.WriteXml(Server.MapPath("Products.xml"));
Response.Write("写Xml文档成功!");
}
/// <summary>
/// ylb:2,把数据库中的表写成XML文档
/// 用适配器(DataAdapter)
/// </summary>
private void WriteXml2()
{
string sql = "select top 10 productID,productName,unitPrice from Products";
string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";
//创建一个虚拟表
DataSet ds = new DataSet("Northwind");
SqlDataAdapter sdr = new SqlDataAdapter(sql, connStr);
//用适配器去填充虚拟库
sdr.Fill(ds);
ds.Tables[0].TableName = "Products"; //给表格命名
//写XML文档
ds.WriteXml(Server.MapPath("Products2.xml"));
Response.Write("写Xml文档成功!");
}
/// <summary>
/// ylb:2,把数据库中的表写成XML文档
/// 用适配器(DataReader)
/// </summary>
private void WriteXml3()
{
string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";
string sql = "select top 10 productId,productName,unitprice from products";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connStr;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
conn.Open();
try
{
//直接输出Xml文档
Response.ContentType = "text/xml"; //输出文档类型为xml
Response.Write("<?xml version='1.0' encoding='UTF-8'?>"); //声明xml
Response.Write("<Northwind>"); //起始根元素
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
//子元素
Response.Write("<Products>");
Response.Write(string.Format("<productId>{0}</productId>", sdr.GetInt32(0)));
Response.Write(string.Format("<productName>{0}</productName>", sdr.GetString(1)));
Response.Write(string.Format("<unitprice>{0}</unitprice>", sdr.GetDecimal(2)));
Response.Write("</Products>");
}
Response.Write("</Northwind>"); //终止根元素
}
finally
{
conn.Close();
}
Response.End(); //停止前台页面输出
}
protected void Page_Load(object sender, EventArgs e)
{
//调用
//ylb:1,
//WriteXml();
//ylb:2,
//WriteXml2();
//ylb:3,
WriteXml3();
}
}
