码迷,mamicode.com
首页 > 其他好文 > 详细

DataTable读写到XML文件的正确方法(以及对缺少根元素问题的处理)

时间:2015-06-28 11:18:55      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:datatable   xml   缺少根元素   writexml   readxml   

    有时候需要将DataTable数据保存到xml文件中,在不使用数据库的小程序中、在需要通过网络接口传参数时,经常会有这种需要,操作不好,会出现“缺少根元素”。现在将经过反复测试没有错误的读写两个方法写出来,大家可以修改使用。


    写datatable到XML

       public static bool dataTable2EncXml(DataTable dt, string strFilePath)
        {
            try
            {                
                string strMid = "";
                MemoryStream ms = new MemoryStream();
                StreamWriter sw = new StreamWriter(ms,System.Text.Encoding.UTF8);
                dt.WriteXml(sw,XmlWriteMode.WriteSchema); //必须写入架构,即没有行数据时,也写入列等架构内容,否则,没有行数据时,列数据也会丢失
                
                ms.Position = 0;//复位读取位置
                StreamReader sr = new StreamReader(ms, System.Text.Encoding.UTF8);
                strMid = sr.ReadToEnd();
                sr.Close();
                sw.Close();
                ms.Close();
                strMid = Encrypting(strMid);//加密
               if( WriteToFile(strFilePath, strMid) == -1) return false; //一个简单的写文本文件 的小函数
               else   return true;
            }
            catch
            {
                return false;
            }
        }



    读XML到datatable,不会提示缺少根元素


        /// <summary>
        /// 将Xml加密数据读入DataTable
        /// </summary>
        /// <param name="filePath">加密XML文件路径</param>
        public static DataTable Xml2DecDataTable(string filePath)
        {
            string strMid = ReadFromFile(filePath); //一个简单的读文本文件函数
            strMid = Decrypting(strMid); //解密
           
            //先将XML字串读到xmlDocument中
            XmlDocument xd = new XmlDocument();
            xd.LoadXml(strMid);
           
            //再存入内存流
            MemoryStream ms = new MemoryStream();
            xd.Save(ms);
            ms.Seek(0, SeekOrigin.Begin);


            //datatable就可以正确读取了,不会显示“缺少根元素”
            DataTable dt = new DataTable();
            try
            {
                dt.ReadXml(ms);
            }
            catch (Exception ex) { }
            
            ms.Dispose();
            return dt;
        }




DataTable读写到XML文件的正确方法(以及对缺少根元素问题的处理)

标签:datatable   xml   缺少根元素   writexml   readxml   

原文地址:http://blog.csdn.net/zhaochao888666/article/details/46669377

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!