过程说明:利用Select * from 数据表 For XML Auto即以XML格式返回数据。创建SQL语句之后,打开数据库连接,并调用ExecuteXmlReader()从数据库中读取数据,且返回一个XmlReader对象myxmlReader。
创建XML文件的具体步骤:
(1)创建XmlDocument对象doc;
(2)添加XML文件的起始标志<?xml version='1.0'?>;
(3)添加XML文件的根节点<Users>;
(4)从XmlReader对象myxmlReader读取每一个XML片段;
(5)添加XML文件的结尾标志</Users>;
(6)保存创建XML文件到服务器上。
CreateXml.aspx文件代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CreateXml.aspx.cs" Inherits="CreateXml" %>
<!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>创建XML文件实例</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
CreateXml.aspx.cs文件代码如下:using System;
using System.Data;
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.Data.SqlClient;
using System.Xml;
public partial class CreateXml : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{ ///创建XML文件
CreateXmlFile();
}
}
private void CreateXmlFile()
{
///创建链接
SqlConnection myConnection = new SqlConnection(
ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
///定义SQL语句
string cmdText = "SELECT * FROM Users FOR XML AUTO";
///创建Command
SqlCommand myCommand = new SqlCommand(cmdText,myConnection);
try
{
///打开连接
myConnection.Open();
///读取XML数据
XmlReader myxmlReader = myCommand.ExecuteXmlReader();
XmlDocument doc = new XmlDocument();
string xmlstr = "";
///添加XML文件的标志
xmlstr += "<?xml version='1.0'?>";
xmlstr += "<Users>";
///移动到XML元素处
myxmlReader.MoveToElement();
///读取从数据库中获取的数据
while(myxmlReader.IsStartElement())
{
xmlstr += myxmlReader.ReadOuterXml();
}
///关闭XMLReader
myxmlReader.Close();
///添加XML文件的标志
xmlstr += "</Users>";
///保存文件
doc.LoadXml(xmlstr);
doc.Save(Server.MapPath("xmlfile.xml"));
}
catch(Exception ex)
{
///显示链接错误的消息
Response.Write(ex.Message + "<br>");
}
finally
{
///关闭数据库的链接
myConnection.Close();
}
}
}