比如我用sql语句查询返回后一个sqldatareader结果集,
如何将结果写入一个xml文件?

解决方案 »

  1.   

    数据阅读器好像不行,可以用DataTable,设DataTable实例为dt,TableName为"选课信息",则
    dt.WriteXml(Server.MapPath("~") + "/xkxx.xml");
    以上写入网站根目录的xkxx.xml文件(若没有则自动创建)。
      

  2.   


    这种方法可行,如果非要返回sqldatareader。则需要自己构造XmlDocument或者XDocument,在调用Save保存到磁盘上。
      

  3.   

    如何完成.Net下XML文档的读写操作 
    XmlTextWriter textWriter = new XmlTextWriter("C:\\w3sky.xml", null);
        textWriter.Formatting = Formatting.Indented;    // 开始写过程,调用WriteStartDocument方法
        textWriter.WriteStartDocument();      // 写入说明
        textWriter.WriteComment("First Comment XmlTextWriter Sample Example");
        textWriter.WriteComment("w3sky.xml in root dir");  
      

  4.   

    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.Xml;
    //51aspx
    public partial class AddXml : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //操作四:添加一个节点
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(Server.MapPath("XMLFile/XMLFile.xml"));
            //创建一个新节点
            XmlElement newElement = xmlDoc.CreateElement("poems");
            //创建newElement下的节点
            XmlElement elid = xmlDoc.CreateElement("id");
            XmlElement elauthor = xmlDoc.CreateElement("author");
            XmlElement eltitle = xmlDoc.CreateElement("title");
            XmlElement elcontent = xmlDoc.CreateElement("content");
            elid.InnerText = ReturnCount();
            elauthor.InnerText = this.tbaddauthor.Text.Trim();
            eltitle.InnerText = this.tbaddtitle.Text.Trim();
            elcontent.InnerText = this.tbaddcontent.Text.Trim();
            //将newElement下的节点加到newElement上
            newElement.AppendChild(elid);
            newElement.AppendChild(elauthor);
            newElement.AppendChild(eltitle);
            newElement.AppendChild(elcontent);
            //将newElement加入到xml文件中(加在最后一条记录上)
            xmlDoc.DocumentElement.AppendChild(newElement);
            //如果要插到某条记录之后也可以用(加在第一条记录之后)
            //xmlDoc.DocumentElement.InsertAfter(newElement,xmlDoc.DocumentElement.ChildNodes.Item(0));
            //如果要插到某条记录之前也可以用(加在第一条记录之前)
            //xmlDoc.DocumentElement.InsertBefore(newElement,xmlDoc.DocumentElement.ChildNodes.Item(0));
            //存盘
            xmlDoc.Save(Server.MapPath("XMLFile/XMLFile.xml"));
            Response.Redirect("Default.aspx");
        }
        public string ReturnCount()
        {
            //返回最后的ID值并+1
            string i = string.Empty;
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(Server.MapPath("XMLFile/XMLFile.xml"));
            XmlNode xmlNode = xmlDoc.DocumentElement.LastChild;
            if (xmlNode != null)
            {
                i = Convert.ToString(Convert.ToUInt32(xmlNode["id"].InnerText) + 1);
            }
            return i;
        }
    }