测试步骤:
1. 创建测试数据,同上一篇(在sql server中,实现列数据转换成逗号隔开字符串 ),还是以用户表为例,创建语句和添加数据语句如下:
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
执行结果如下:
Sql语句:SELECT * FROM Users u FOR XML RAW('User')
执行结果如下:
语句SELECT * FROM Users u FOR XML RAW('User'),ROOT('Users'),elements 不在copy执行结果了,大家自己执行下就可以看到效果了。
3. 在ASP.NET中如何获取这种形式的数据集呢。主要用到xmlreader(xmlTextReader),这里以xmlreader为例,
在程序代码中,主要用是用SqlCommand对象ExecuteXmlReader()方法,
下面是具体的实现代码:
运行结果:
得到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
联系客服