当前位置: 首页 > news >正文

永兴县人民政府门户网站/企业如何建站

永兴县人民政府门户网站,企业如何建站,网站建设分金手指排名十七,404 没有找到网站 试试申请收录吧系列目录 前言 通过前三篇介绍,相信大家对于XML已经有了很多的理解,后两篇将介绍XML和常用数据结构的转换。本篇我们一起讨论XML和DataSet(DataTable)之间的羁绊。 XML与DataSet的关系 DataSet是ADO.NET的中心概念。可以把DataSet…

系列目录

前言

通过前三篇介绍,相信大家对于XML已经有了很多的理解,后两篇将介绍XML和常用数据结构的转换。本篇我们一起讨论XML和DataSet(DataTable)之间的羁绊。

XML与DataSet的关系

DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。[百度百科]
425900-20170210105037322-1262481015.png

在.NET Framework 中,经常使用XML 作为存储和传输各种数据的格式。DataSet 中的数据可以转换成XML 的形式来表示和存储。我们可以使用XML 对象同步和转换DataSet 的数据,而DataSet 也可以存储和传输XML 格式的数据。XML 与 DataSet 的关系如下图所示:

425900-20170210082331182-1142774526.png

不管是DataSet/DataTable 其实底层内部都是通过XML组织数据的。

DataSet类与XML关联常用方法:

425900-20170210085249244-852599101.png

1. ReadXml()
2. ReadXmlSchema()
3. WriteXml()
4. WriteXmlSchema()
5. GetXml()
6. GetXmlSchema()

XmlSchema是对XML的文档结构的描述。XmlSchema教程

ReadXml/ReadXmlSchema

425900-20170210141044088-1265507287.png

ReadXmlSchema只是转换结构,没有数据

DataSet和XML相互转换(XmlDataSetConvert)

为了方便DS和XML转换这边整理对应的封装类 XmlDataSetConvert,类图如下:

425900-20170210155439572-896113108.png

将xml字符串转换为DataSet

#region 将xml字符串转换为DataSet/// <summary>
/// 将xml对象内容字符串转换为DataSet
/// </summary>
/// <param name="xmlData"></param>
/// <returns></returns>
public static DataSet XmlString2DataSet(string xmlData)
{StringReader stream = null;XmlTextReader reader = null;DataSet xmlDS = null;try{xmlDS = new DataSet();using (stream = new StringReader(xmlData)){//从stream装载到XmlTextReaderusing (reader = new XmlTextReader(stream)){xmlDS.ReadXml(reader);}}return xmlDS;}catch (System.Exception ex){throw ex;}finally{if (reader != null) reader.Close();}
}#endregion 将xml字符串转换为DataSet

将xml文件转换为DataSet

#region 将xml文件转换为DataSet/// <summary>
/// 将xml文件转换为DataSet
/// </summary>
/// <param name="xmlFile">文件路径</param>
/// <returns></returns>
public static DataSet XmlFile2DataSet(string xmlFile)
{XmlTextReader reader = null;try{DataSet xmlDS = new DataSet();//从stream装载到XmlTextReaderusing (reader = new XmlTextReader(xmlFile)){xmlDS.ReadXml(reader);}//xmlDS.ReadXml(xmlFile);return xmlDS;}catch (System.Exception ex){throw ex;}finally{if (reader != null) reader.Close();}
}#endregion 将xml文件转换为DataSet

将DataSet转换为xml对象字符串

#region 将DataSet转换为xml对象字符串/// <summary>
///  将DataSet转换为xml对象字符串
/// </summary>
/// <param name="xmlDS"></param>
/// <returns></returns>
public static string DataSet2XmlString(DataSet xmlDS)
{MemoryStream stream = null;XmlTextWriter writer = null;try{stream = new MemoryStream();//从stream装载到XmlTextReader//writer = new XmlTextWriter(stream, Encoding.Unicode);//Unicode有点问题,可能是字符集不一致writer = new XmlTextWriter(stream, Encoding.Default);//用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();return Encoding.Default.GetString(arr).Trim();}catch (System.Exception ex){throw ex;}finally{if (writer != null) writer.Close();}
}#endregion 将DataSet转换为xml对象字符串

将DataSet转换为xml对象字符串

#region 将DataSet转换为xml文件/// <summary>
/// 将DataSet转换为xml文件
/// </summary>
/// <param name="xmlDS"></param>
/// <param name="xmlFile"></param>
public static void DataSet2XmlFile(DataSet xmlDS, string xmlFile)
{try{xmlDS.WriteXml(xmlFile);}catch (System.Exception ex){throw ex;}#region 复杂实现方法//MemoryStream stream = null;//XmlTextWriter writer = null;//try//{//    stream = new MemoryStream();//    //从stream装载到XmlTextReader//    //writer = new XmlTextWriter(stream, Encoding.Unicode);//    writer = new XmlTextWriter(stream, Encoding.Default);//    //用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("<?xml version=\"1.0\" encoding=\"utf-8\"?>");//    sw.WriteLine(Encoding.Default.GetString(arr).Trim());//    sw.Close();//}//catch (System.Exception ex)//{//    throw ex;//}//finally//{//    if (writer != null) writer.Close();//}#endregion 复杂实现方法
}#endregion 将DataSet转换为xml文件

总结

这边主要谈DataSet和XML关系。并总结封装了他们转换的类源代码

XML 与DataSet 对象的关系
参考地址
百度百科

转载于:https://www.cnblogs.com/wxc-kingsley/p/Xml-004.html

http://www.jmfq.cn/news/4829005.html

相关文章:

  • 国外做情趣用品比较有名的网站/视频号视频下载助手app
  • dw怎么用div css做网站/免费二级域名分发
  • 合肥网站建设开发/国外外链平台
  • 网站设计制作要交印花税/优化疫情防控措施
  • 网站开发人才需求/三亚百度推广公司电话
  • 奉化区建设局网站/西安seo代理
  • b站短链接生成/新媒体代运营
  • 建e网室内设计网网址/北京网站优化推广方案
  • 东莞厚街镇疫情最新消息/seo外包杭州
  • 泉州做网站开发公司/私人网站服务器
  • 商城式网站具备哪些功能吗/重庆网站快速排名提升
  • 国内永久免费crm系统网站推荐/百度账号购买网站
  • 建网站内容/如何快速网络推广
  • wordpress建站教程贴吧/网络销售培训学校
  • 免费搭建商城网站/网络广告营销典型案例
  • 新疆建设兵团农一师检察院网站/陕西seo主管
  • 手机百度 网站提交/搜索引擎seo关键词优化
  • 购物网站建设与实现/b站推广入口2023
  • c2c网站的类型/sem是什么岗位
  • 做本地网站需要什么资质/本周时事新闻概要10条
  • 上海平台网站建设报/域名交易域名出售
  • 手机网站栏目结构图/太极seo
  • wordpress手机网站怎么做/河南seo推广
  • 南城区做网站/精准引流推广
  • wordpress 有图片的文章/百度推广优化师
  • 洛杉矶网站建设/网络营销案例分析报告
  • 网站做cpa/市场营销考试题目及答案2022
  • 浏览网站 需要我安装wordpress/北京百度推广代理公司
  • 建设网站必备条件/销售网站有哪些
  • 网站说建设中/厦门网站推广公司哪家好