• 小议sql查询返回xml数据之应用


        今天查看邮件,看到一标题Using the FOR XML Clause to Return Query Results as XML,点进去看了看,以前也是知道sql server 查询可以返回xml格式,但具体一到应用中比较少,读过文章后,想到自己的项目有调用远程web服务,传xml格式串方法,这个xml串是拼接而成的。想到此,决定做个测试,看程序中如何接收sql查询返回xml格式,为以后做个笔记,方便自己查找。
      

    测试步骤:

    1.       创建测试数据,同上一篇(在sql server中,实现列数据转换成逗号隔开字符串 ),还是以用户表为例,创建语句和添加数据语句如下:

    Code

     

    2.       sql server management studio 中温习下 sql 查询加for xml后的结果集,主要是参考Using the FOR XML Clause to Return Query Results as XML文内容,在sql 语句结束处加for xml auto root(‘xxx’) elements等等。

     

    运行一sql 语句:SELECT * FROM Users u FOR XML raw

    执行结果如下:

    Code

     

    Sql语句:SELECT * FROM Users u FOR XML RAW('User')

     

    执行结果如下:

    Code

     语句SELECT * FROM Users u FOR XML RAW('User'),ROOT('Users'),elements 不在copy执行结果了,大家自己执行下就可以看到效果了。

    3.       ASP.NET中如何获取这种形式的数据集呢。主要用到xmlreader(xmlTextReader),这里以xmlreader为例,

     

    在程序代码中,主要用是用SqlCommand对象ExecuteXmlReader()方法,

    下面是具体的实现代码:

    Code

    运行结果:


    Code


    得到sql 返回的xml格式的数据,以前我的那个项目拼接成的xml格式的字符串就可以省去一大部分拼接代码。没有测试过是在程序这边拼接效率好还是数据库返回xml数据效率好,但编写的程序代码是减少很多。有兴趣的同学帮忙测测这两种方式哪种效率更好些呢。欢迎大家扔砖头。

    参考:

    Using the FOR XML Clause to Return Query Results as XML

    http://www.simple-talk.com/content/article.aspx?article=720

     

    如何使用SQLSERVER2000中的XML功能

    http://www.legalsoft.com.cn/docs/docs/11/1001.html

     

     

    使用ExecuteXMLReader()读取XML片段

    http://blog.csdn.net/sunhaiwei_andy/archive/2008/04/14/2289586.aspx

  • 相关阅读:
    JavaWeb--基本概念
    启动Tomcat错误:The JRE_HOME environment variable is not defined correctly
    时间管理-1-总有一种情况你经历过
    时间管理
    非对称加密-支付宝 堆成加密
    TreeMap底层实现和原理-红黑树
    @Autowired报错原因分析和4种解决方案!
    布隆过滤器的设计原理
    springboot 日期参数前后台转换问题
    设计模式
  • 原文地址:https://www.cnblogs.com/kevinlzf/p/1567788.html
Copyright © 2020-2023  润新知