新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 请在这里发表您对论坛建设的建议。
    [返回] 计算机科学论坛版务区『 建议或意见 』 → XML与SQL之间的相互转换(c#)?[求助] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 22803 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML与SQL之间的相互转换(c#)?[求助] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     lhs0217 帅哥哟,离线,有人找我吗?白羊座1988-4-3
      
      
      等级:大一新生
      文章:7
      积分:87
      门派:XML.ORG.CN
      注册:2009/3/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lhs0217发送一个短消息 把lhs0217加入好友 查看lhs0217的个人资料 搜索lhs0217在『 建议或意见 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lhs0217的博客楼主
    发贴心情 XML与SQL之间的相互转换(c#)?[求助]

    有兴趣的进来讨论下,我只能做出单表的转换。多表的该用什么方法,具体该怎么做?
    初学c#。。。
    单表转换我做的代码如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data.SqlClient;
    using System.Data;
    using System.Xml;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace DBtoXML
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                // TODO: 这行代码将数据加载到表“bookOrderDataSet.Books”中。您可以根据需要移动或移除它。
                this.booksTableAdapter.Fill(this.bookOrderDataSet.Books);

            }

            private void btnRE_Click(object sender, EventArgs e)
            {
                //创建到数据库的连接,并读取数据
                SqlConnection ConBook = new
                   SqlConnection("Server=localhost;Database=BookOrder;UID=sa;PWD=");
                SqlDataAdapter dadBook = new SqlDataAdapter("Select *From Books", ConBook);
                DataSet dstBook = new DataSet();
                dadBook.Fill(dstBook, "Books");

                DataTable dtblBook = dstBook.Tables["Books"];

                XmlDocument xdoc = new XmlDocument();
                //创建并添加XML文档声明;
                //<?xml version="1.0" encoding="utf-8" ?>
                XmlDeclaration xdexl = xdoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
                //xdoc.AppendChild(xdecl);
                //创建并添加文档的根元素books
                XmlElement xe_books = xdoc.CreateElement("books");
                xdoc.AppendChild(xe_books);

                //读取数据库中每一行的信息并加入到XML文档中
                for (int i = 0; i < dtblBook.Rows.Count; i++)
                {
                    XmlElement xe_book = xdoc.CreateElement("Book");

                    //添加book的子元素bookID
                    XmlElement xe_bookID = xdoc.CreateElement("bookID");
                    xe_bookID.InnerText = dtblBook.Rows[i]["BookID"].ToString();
                    xe_book.AppendChild(xe_bookID);

                    //添加book的子元素bookISIN
                    XmlElement xe_bookISBN = xdoc.CreateElement("bookISBN");
                    xe_bookISBN.InnerText = dtblBook.Rows[i]["BookISBN"].ToString();
                    xe_book.AppendChild(xe_bookISBN);

                    //添加book的子元素bookName
                    XmlElement xe_bookName = xdoc.CreateElement("bookName");
                    xe_bookName.InnerText = dtblBook.Rows[i]["BookName"].ToString();
                    xe_book.AppendChild(xe_bookName);

                    //添加book的子元素bookCategory
                    XmlElement xe_bookCategory = xdoc.CreateElement("bookCategory");
                    xe_bookCategory.InnerText = dtblBook.Rows[i]["BookCategory"].ToString();
                    xe_book.AppendChild(xe_bookCategory);

                    //添加book的子元素bookAuthor
                    XmlElement xe_bookAuthor = xdoc.CreateElement("bookAuthor");
                    xe_bookAuthor.InnerText = dtblBook.Rows[i]["BookAuthor"].ToString();
                    xe_book.AppendChild(xe_bookAuthor);

                    //添加book的子元素bookPrice
                    XmlElement xe_bookPrice = xdoc.CreateElement("bookPrice");
                    xe_bookPrice.InnerText = dtblBook.Rows[i]["BookPrice"].ToString();
                    xe_book.AppendChild(xe_bookPrice);

                    //添加book的子元素bookPublisher
                    XmlElement xe_bookPublisher = xdoc.CreateElement("bookPublisher");
                    xe_bookPublisher.InnerText = dtblBook.Rows[i]["BookPublisher"].ToString();
                    xe_book.AppendChild(xe_bookPublisher);

                    //将book元素添加为文档元素books的子元素
                    xdoc.DocumentElement.AppendChild(xe_book);
                }

                SaveFileDialog SaveFile = new SaveFileDialog();
                SaveFile.InitialDirectory = "D:\\";
                SaveFile.Filter = "XML Files (*.xml)|*.xml";
                SaveFile.FilterIndex = 1;

                // 如果文件名非空则保存
                if (SaveFile.ShowDialog() == DialogResult.OK && SaveFile.FileName != "")
                {
                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(xdoc.OuterXml);
                    doc.Save(SaveFile.FileName);
                    tbxXML.Text = xdoc.OuterXml;          
               }
                
               //xdoc.Save(@"E:\DBtoXML\books.xml");
                
            }
        }
    }


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/17 16:43:00
     
     GoogleAdSense白羊座1988-4-3
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 建议或意见 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/11 20:59:19

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms