千家信息网

C#怎么实现XML文件与DataTable、Dataset互转

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容介绍了"C#怎么实现XML文件与DataTable、Dataset互转"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家
千家信息网最后更新 2025年01月19日C#怎么实现XML文件与DataTable、Dataset互转

本篇内容介绍了"C#怎么实现XML文件与DataTable、Dataset互转"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、DataTable转XML

        #region DataTableToXml        ///         /// 将DataTable对象转换成XML字符串        ///         /// DataSet对象        /// XML字符串        public static string DataTableToXml(DataTable dt,string sName)        {            if (dt != null)            {                MemoryStream ms = null;                XmlTextWriter XmlWt = null;                try                {                    ms = new MemoryStream();                    //根据ms实例化XmlWt                    XmlWt = new XmlTextWriter(ms, System.Text.Encoding.Unicode);                    //获取ds中的数据                    dt.TableName = Sql.IsEmptyString(sName) ? "dt2xml" : sName;                    dt.WriteXml(XmlWt, XmlWriteMode.WriteSchema);                    int count = (int)ms.Length;                    byte[] temp = new byte[count];                    ms.Seek(0, SeekOrigin.Begin);                    ms.Read(temp, 0, count);                    //返回Unicode编码的文本                    System.Text.UnicodeEncoding ucode = new System.Text.UnicodeEncoding();                    string returnValue = ucode.GetString(temp).Trim();                    return returnValue;                }                catch (System.Exception ex)                {                    throw ex;                }                finally                {                    //释放资源                    if (XmlWt != null)                    {                        XmlWt.Close();                        ms.Close();                        ms.Dispose();                    }                }            }            else            {                return "";            }        }        #endregion

二、XML转Dataset

方法A:

        #region Xml To DataSet        public static DataSet XmlToDataSet(string xmlString)        {            XmlDocument xmldoc = new XmlDocument();            xmldoc.LoadXml(xmlString);            StringReader stream = null;            XmlTextReader reader = null;            try            {                DataSet xmlDS = new DataSet();                stream = new StringReader(xmldoc.InnerXml);                reader = new XmlTextReader(stream);                xmlDS.ReadXml(reader);                reader.Close();                return xmlDS;            }            catch (System.Exception ex)            {                reader.Close();                throw ex;            }        }        #endregion

方法B:

        private static  DataSet XMLToDataset()        {            string strDBXMLFile = @"F:\TestDir\XML\DBTEST.XML";            DataSet dsXML = new DataSet();            dsXML.ReadXml(strDBXMLFile);            //某个节点名称的所有节点内容             DataTable dtOneNote = dsXML.Tables["SMT"];            return dsXML;        }

三、Dataset转XML

            public static string ConvertDataSetToXML(DataSet xmlDS)            {                MemoryStream stream = null;                XmlTextWriter writer = null;                try                {                    stream = new MemoryStream();                    //从stream装载到XmlTextReader                    writer = new XmlTextWriter(stream, Encoding.Unicode);                    //用WriteXml方法写入文件.                    xmlDS.WriteXml(writer);                    int count = (int)stream.Length;                    byte[] arr = new byte[count];                    stream.Seek(0, SeekOrigin.Begin);                    stream.Read(arr, 0, count);                    UnicodeEncoding utf = new UnicodeEncoding();                    return utf.GetString(arr).Trim();                }                catch (System.Exception ex)                {                    throw ex;                }                finally                {                    if (writer != null) writer.Close();                }            }

四、Dataset转XML文件

            public static void ConvertDataSetToXMLFile(DataSet xmlDS, string xmlFile)            {                MemoryStream stream = null;                XmlTextWriter writer = null;                try                {                    stream = new MemoryStream();                    //从stream装载到XmlTextReader                    writer = new XmlTextWriter(stream, Encoding.Unicode);                    //用WriteXml方法写入文件.                    xmlDS.WriteXml(writer);                    int count = (int)stream.Length;                    byte[] arr = new byte[count];                    stream.Seek(0, SeekOrigin.Begin);                    stream.Read(arr, 0, count);                    //返回Unicode编码的文本                    UnicodeEncoding utf = new UnicodeEncoding();                    StreamWriter sw = new StreamWriter(xmlFile);                    sw.WriteLine("");                    sw.WriteLine(utf.GetString(arr).Trim());                    sw.Close();                }                catch (System.Exception ex)                {                    throw ex;                }                finally                {                    if (writer != null) writer.Close();                }            }

"C#怎么实现XML文件与DataTable、Dataset互转"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0