通过WebService调用SQLXML(SQL Server 2005) [ZT]
原文发布日期:2007.02.04
作者:Russ Quinn
翻译:webabcd
介绍
我最近需要给用户创建一个feed,所有的数据都是放在sqlserver数据库里的,所以我疯狂的查找把sqlserver里的数据转换成xml的最快速的方法。现在我知道了xml已经成为了sqlserver2005的一部分。
之后我萌生出了一个主意,就是创建一个webservice用于数据库转xml的服务,这样用户就可以在任何时候调用他们需要的数据(如果需要也可以传参数)
现在,我知道你将会说“这不是什么新东西也没有什么难度”,但这正是我写本文的目的,看完本文之后你会发现原来实现这个功能是如此简单。我不敢相信在CodeProject居然没有一个人提出这样的解决方法。
代码
首先,在你的sqlserver2005数据库(要有相关的数据)中创建如下存储过程
@fromDate datetime,
@toDate datetime
AS
BEGIN
select dbo.Story.id,
description,
notes,
text,
publicationdate,
authorsnames,
keywords
from dbo.Story
inner join dbo.Status on dbo.Story.StatusId = dbo.Status.id
where publicationdate between @fromDate and @toDate
and dbo.Status.status = 'live'
order by publicationDate
FOR XML PATH('story'),
ROOT('stories')
END
其关键的步骤就是“FOR XML PATH(###), ROOT(###)”这部分。他告诉sqlserver返回的xml每一行都要有名为“story”的节点,并且xml文档的根节点名为“stories”
下一步新建一个webservice,增加一个新的WebMethod。在这个方法中连接数据库并获得数据。
现在,调用SqlCommand类的ExecuteXmlReader方法以返回xml,类似如下代码
这个reader就是一个XmlDataDocument流,它可以从WebMethod返回。下面是我写的一段WebMethod,我用了一个数据库帮助类App_Data.SqlSPCommand来获取数据库中的值。
CacheDuration = 600, MessageName = "GetStoriesForCentre")]
public XmlDataDocument GetStoriesForCentre(string centre, DateTime fromDate, DateTime toDate)
{
Database db = new Database("TarkStoriesConnectionString");
using (db.Connection)
{
db.OpenConnection();
App_Data.SqlSPCommand command = new App_Data.SqlSPCommand("GetStoriesForCentre", db.Connection);
command.AddParameter("@centre", SqlDbType.VarChar, centre);
command.AddParameter("@fromDate", SqlDbType.DateTime, fromDate);
command.AddParameter("@toDate", SqlDbType.DateTime, toDate);
XmlReader reader = command.Command.ExecuteXmlReader();
XmlDataDocument xml = new XmlDataDocument();
xml.Load(reader);
return xml;
}
}
就这些东西了
调用webservice就按我们通常做的方法就行,提供一些参数(本例中是两个日期类型)就可以返回xml,本例中返回的xml如下
<stories>
<story>
<id>514</id>
<description>some description</description>
<notes>no notes available</notes>
<text>blah blah blah</text>
<publicationdate>2007-01-30T00:00:00</publicationdate>
<authorsnames>Sue Williams</authorsnames>
<keywords>boring story</keywords>
</story>
</stories>
就是如此简单,希望本文能对你有一些帮助
译者注:关于SQLXML的更多内容可以参看http://www.stylusstudio.com/sqlxml_tutorial.html
转载于:https://www.cnblogs.com/RobotTech/archive/2007/09/08/886823.html
通过WebService调用SQLXML(SQL Server 2005) [ZT]相关推荐
- 无法启动SQL Server 2005中的SQL Server(MSSQLSERVER)服务--zt
原地址:http://blog.csdn.net/erway/archive/2007/08/07/1729230.aspx 问题:无法启动SQL Server 2005中的SQL Server(MS ...
- 胡百敬老师谈SQL Server 2005
博文专访--与作者面对面 胡百敬老师谈SQL Server 2005 针对胡百敬老师的新书<SQL Server 2005数据库开发详解>的出版,博文视点对胡百敬老师进行了专访,以飨读者. ...
- ASP.NET 2.0在SQL Server 2005上自定义分页
这篇文章讲述了如何利用SQL Server 2005的新特性来简单高效的实现分页.对于那些暂时还没用到SQL Server2005的人们,请看在大规模数据中的高效分页方法.如果需要,这篇文章会补上这里 ...
- 转:探讨SQL Server 2005的安全策略
一.简介 SQL Server 2005是继SQL Server 2000之后的又一次重大成功.单从安全方面看,它在认证和授权方面比以往都有了大幅度的提高:同时,它还提供了本机加密支持-能够实现比以往 ...
- SQL Server 2005 连接本地端口1433开启远程连接/登陆18456错误的解决方法
SQL Server 2005 连接本地端口1433开启远程连接/登陆18456错误的解决方法 出处:http://jimmyli.blog.51cto.com/我站在巨人肩膀上Jimmy Li 作者 ...
- T-SQL Enhancement in SQL Server 2005[上篇]
较之前一版本,SQL Server 2005可以说是作出了根本性的革新.对于一般的编程人员来说,最具吸引力的一大特性就是实现了对CLR的寄宿,使我们可以使用任意一种.NET Programming L ...
- 无废话-SQL Server 2005新功能(1) - TSQL
无废话-SQL Server 2005新功能(1) - TSQL SQL Server 2005相对于SQL Server 2000改进很大,有些还是非常实用的. 举几个例子来简单说明 这些例子我引用 ...
- 生成有关 SQL Server 2005 Analysis Services 多维数据集数据源的本地化报表
引言 本文节选了 Brian Larson 所著的 Microsoft SQL Server 2005 Reporting Services 一书.学习如何通过参数化 MDX 查询将 Analysis ...
- SQL Server 2005 用户自定义函数
(<SQL Server 2005 编程入门经典> 第13章) 用户自定义函数和存储过程非常相似,但它们也有一些行为和能力的区别. 13.1 UDF的定义 用户自定义函数是有序的T-SQL ...
最新文章
- 科研费4年翻3倍,全球科研队伍突破8000人,滴滴致力打造出行领域核心技术
- C#.NET学习笔记---C#中的条件编译
- 营销型网站吸引用户说难也难,说简单也简单
- shell两个时间字符串插值_Shell 脚本速成
- java期末考试2013及答案_java笔试经典(题及答案)2013.doc
- 2022年中国物联网行业研究报告
- 特斯拉部分车型将逐渐搭载磷酸铁锂电池,比亚迪有望成为其电池供应商
- 机器学习代码实战——SVM(支持向量机)(使用不同核函数)
- go - json -struct
- Gradle引入外部资源冲突问题,Gradle版本库冲突解决
- java.lang.IllegalStateException: Async support must be enabled on a servlet and for all filters invo
- torch随机数 manual_seed
- xvideos打开显示服务器出错,为什么打开xvideo显示网页
- [完全免费] 在线UML State Diagram 状态机图工具 - 教程第7部分
- #pragma once用法总结和链接错误
- 全新织梦DEDE CMS模板-精仿qq技术导航网站源码
- 前端八股文,https、跨域、闭包、原型链,布局、防抖节流等
- html5+css3笔记整理
- javascript 模板_了解JavaScript中的模板文字
- 做Web自动化前,你必会的几个技能
热门文章
- pytorch中tensor的unsqueeze()函数和squeeze()函数的用处
- 95页重磅报告:全面预测未来5年趋势
- 机器学习研究者必知的八个神经网络架构
- Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...
- 深度观察|工业物联网的应用场景和市场潜力
- MIT科学家Dimitri P. Bertsekas最新2019出版《强化学习与最优控制》(附书稿PDF讲义)...
- 智能交通大数据及云应用平台解决方案
- OpenAI最新研究:如何通过无监督学习提升「自然语言理解能力」?
- 周志华:严肃的研究者就不该去触碰强人工智能
- 伯克利人工智能研究院最新研究:协作型工业机器人如何更智能?