zoukankan      html  css  js  c++  java
  • DataSet与Xml之间的转换

    DataSet转化为Xml,Xml转化为DataSet,Ado.net中使用方法DataSet.WriteXml()和DataSet.ReadXml(),由于有多个重载方法,所以这里有多条路径可以实现,可谓条条大道通罗马。这里我就把所有的用法来尝试下,希望给大家有个借鉴作用。     

    因为DataSet.ReadXml()和DataSet.WriteXml()共8种重载方法,前四种是不带架构的,后四种带架构。这里举出带架构的4种方法。      

    /// <summary>         /// DataSet和Xml之间的转换         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void DsAndXml_Click(object sender, EventArgs e)        

    {             //自定义一个DataSet,里面有一列a,一行值为"hello world!",Xml数据从这个数据集中来读取            

    DataSet dsWrite = new DataSet();            

    DataTable dt = new DataTable();            

     dt.Columns.Add("a", typeof(string));            

    DataRow dr = dt.NewRow();            

    dr[0] = "hello world!";            

     dt.Rows.Add(dr);            

    dsWrite.Tables.Add(dt);            

    //自定义一个DataSet用来从xml中读取数据            

    DataSet dsRead = new DataSet();            

     int k = Convert.ToInt32(this.textBox1.Text.ToString());       

      switch(k)            

     {           case 1:

     Stream stream = new FileStream(@System.AppDomain.CurrentDomain.BaseDirectory.ToString()+"Test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);                    

    //dsWrite.WriteXml(stream);                 

     dsWrite.WriteXml(stream, XmlWriteMode.WriteSchema);                 

     stream.Close();                     

     dsRead.ReadXml(@System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Test.txt");                    

    break; 

    case 2:

    dsWrite.WriteXml(@System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Test.txt");                       

    dsRead.ReadXml(@System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Test.txt");                    

    break; 

    case 3: 

    StringBuilder s1 = new StringBuilder();                    

    TextWriter tw1 = new StringWriter(s1);                    

     System.Xml.XmlTextWriter xtw1= new System.Xml.XmlTextWriter(tw1);                    

    dsWrite.WriteXml(xtw1,XmlWriteMode.WriteSchema);                    

    string xml1 = s1.ToString();                     //读入                    

    TextReader tr1 = new StringReader(xml1);                    

    dsRead.ReadXml(tr1,XmlReadMode.ReadSchema);                    

     //System.Xml.XmlReader xr = System.Xml.XmlReader.Create(tr1);                    

    //dsRead.ReadXml(xr);                                       

    break;                

    case 4:

    StringBuilder s = new StringBuilder();                    

     TextWriter tw = new StringWriter(s);                    

    dsWrite.WriteXml(tw, XmlWriteMode.WriteSchema);                    

    string xml = s.ToString();                   

    TextReader tr = new StringReader(xml);                    

    dsRead.ReadXml(tr,XmlReadMode.ReadSchema);                    

     break;                

     default:                    

    break;              

    }        

    }     


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/feijian14/archive/2008/06/28/2593930.aspx

  • 相关阅读:
    Windows进程通信(2)使用内存映射文件
    VC2010添加头文件目录
    CString(ANSI/Unicode)与string/wstring的安全转换
    1005 ( Number Sequence )
    1004 ( Let the Balloon Rise )
    1003 ( Max Sum )
    CreateMutex
    CloseHandle
    delphi的Frame简单演示
    DLL中显示模式窗体
  • 原文地址:https://www.cnblogs.com/uwking/p/2014584.html
Copyright © 2011-2022 走看看