|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
您现在的位置: ChinaBeta.cn 中文IT资讯 >> 网盟学院 >> 编程类 >> ASP|ASP.NET >> 网管技术正文
推荐网管技术[多图]即将发布的Microsoft Of…推荐网管技术Asp生成静态网页
推荐网管技术让我穿过那道"墙"! 畅游网络应…推荐网管技术文件夹变身磁盘 查看共享有新招…
推荐网管技术防患于未然!终截者抗病毒软件…推荐网管技术主动防御!瑞星杀毒2008抢先评…
推荐网管技术玩转虚拟光驱:DAEMON TOOLS P…推荐网管技术速度超快 Discuz! 6.0.0试用手…
推荐网管技术当设计遇上PC:LG XPION A10图…推荐网管技术奇虎举证:各杀毒软件均报CNNIC…
推荐网管技术Google Earth 4.2加入繁体中文…推荐网管技术Photoshop CS3:蔚蓝梦幻风格婚…
推荐网管技术专业防护!瑞星防火墙2008测试…推荐网管技术挂载RAR文件 从认识到爱上WinM…
推荐网管技术让你冲浪随心所欲 如何访问被封…推荐网管技术轻装上阵!江民杀毒软件2008速…
推荐网管技术VMware Fusion苹果版全程图解(…推荐网管技术VMware Fusion苹果版全程图解(…
推荐网管技术从菜鸟出发!征服高清详细评测全…推荐网管技术VS2008和ASP.NET 3.5使用之初体…
推荐网管技术迅雷 快车 电驴 eMule下载飚速…推荐网管技术实战967种木马 木马清道夫2007…
推荐网管技术[多图]Ubuntu 7.04 初体验推荐网管技术东风吹战鼓擂 下载软件你选谁?
推荐网管技术若隐若现 Windows XP DirectX …推荐网管技术GPRS上网全攻略
推荐网管技术主流杀毒软件Vista兼容性横评推荐网管技术基于IRF的网络管理和业务管理解…
用DataSet.ReadXml读取无Scheme的XML提速方法
Www.ChinaBeta.Cn 更新时间:2008-5-6

【ChinaBeta.Cn 网盟学院】
 单纯用DataSet的ReadXml方法读取XML对于小数据量来说效率很高,但是对大数据量的XML来说就有些力不从心了。

  比如,让DataSet读取一个16M的XML,能让你等到地老天荒。如果你的机器配置不高,那肯定死的很难看、很窝囊。
咱不能见死不救不是,请往下看。

  题外话:如果XML来自DataSet,那么你是幸运的。你可以DataSet把架构信息带上,别因膨胀那么几k的数据就舍不得了。

  ReadXML缺省使用XmlReadMode.Auto方式读取,这就给大数据量留下了低效率的伏笔。
因为如果XML没有Scheme,DataSet就会自己推算XML的结构,然后再加载,这就是低效的主要原因。

  让DataSet推算不让我们帮他算,因为DataSet已经提供了一个ReadXmlSchema方法。

  如下:

  Dim XMLText As String ’保存了XML的文本
  Dim MyDs As New DataSet
  Dim MyTab As DataTable

  ’加载架构
  MyDs.ReadXmlSchema(New IO.StringReader(XMLText))
  For Each MyTab In MyDs.Tables
  MyTab.BeginLoadData()
  Next

  然后再让DataSet加载数据。
  注意:因为前面我们一个帮他加载架构信息了,这里就可以让DataSet加载数据时忽略Schema。
  ’加载数据
  MyDs.ReadXml(New IO.StringReader(XMLText), XmlReadMode.IgnoreSchema)
  For Each MyTab In MyDs.Tables
  MyTab.EndLoadData()
  Next

  Ok,这样就把数据快速的加载到DataSet了。经过实际测试,数据量越大效率比就越高。 

  通常获得DataSet的XML的方法是用GetXml,确实方便。但是返回的结果已经把DataSet的架构信息抹掉了,剩下的是单纯的数据。

  DataSet还给我们留了一个WriteXml方法(感动ing,勿扰....),这个方法可以把DataSet的数据写到文件或流中。

  比如:
  Dim MS As New IO.MemoryStream
  DataSet.WriteXml(MS, XmlWriteMode.WriteSchema) ’后面参数是关键,指明要带上架构信息。
  这样在MS这个流中就保存了带DataSet架构信息的全部数据。

Google

(责任编辑:hahack)

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门文章 相关报道
普通网管技术 [ASP|ASP.NET]用DataSet.ReadXml读取无Scheme的… (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]利用VS.NET快速开发Windows服务 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]Asp.net中防止用户多次登录的方法 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET].NET图像编程(GDI+)自制“小屏… (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET].net Framework 2.0下发送邮件的… (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]为ASP.NET MVC框架添加AJAX支持 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]如何用.NET技术在线生成网站LOGO (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]安装VS 2008最终版前卸载VS 2008… (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]ASP.Net 2.0中的5个数据控件 (05-06)最新网管技术
普通网管技术 [ASP|ASP.NET]一个生成.NET API文档的工具Sand… (05-06)最新网管技术
  • 利用VS.NET快速开发Windows…

  • Asp.net中防止用户多次登录…

  • .NET图像编程(GDI+)自制“…

  • .net Framework 2.0下发送邮…

  • 为ASP.NET MVC框架添加AJAX…

  • 如何用.NET技术在线生成网站…

  • 安装VS 2008最终版前卸载VS…

  • ASP.Net 2.0中的5个数据控件

  • 一个生成.NET API文档的工具…

  • ASP.NET 2.0 中跨网页提交的…

  •   网友评论内容:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    I D *
    邮 箱
    主 页
    评 分 1分 2分 3分 4分 5分
    评 论

    关于我们  中国·国家信息产业部{粤ICP备06006652号}{陇ICP备06002562号}
    版权所有:『AK网盟基地』站长:Hahack | QQ:80505955 | E-mail:Hahack@Gmail.com
    Copyright (C) 2005-2007  akhack.org|chinabeta.cn All Rights Reserved