中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> .NET编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· ASP.NET中WebForm组...
· ASP.NET中WebForm组...
· ASP.NET中WebForm组...
· ASP.NET中WebForm组...
· ASP.NET计数器
ASP.NET中利用SQLXML WEB服务访问XML数据(3)
作者:不详  来源:不详  发布时间:2006-8-14 9:04:04  发布人:chinazhan

 减小字体 增大字体

     调用Web服务
  
    在创建ASP.net工程之后,你需要添加代码来调用Web 服务。 你想要应用程序调用Web 服务,可以调用CustOrdersDetail 方法,并且处理当用户点击按钮以后返回的XML结果集。添加以下的代码到btnRequest_Click事件。
  
  (C# 代码)
  
  private void btnRequest_Click(object sender,
  System.EventArgs e)
  {
  
  int iOrderID;
  int returnValue = 0;
  int j = 0;
  
  iOrderID = Convert.ToInt32(txtOrderID.Text);
  localhost.MyWebService proxy =
  new localhost.MyWebService();
  
  object[] results;
  results = proxy.CustOrdersDetail(iOrderID,
  out returnValue);
  
  System.XML.XmlElement result;
  result = (System.Xml.XmlElement) results[j];
  
  txtResponse.Text = result.OuterXml.ToString();
  
  }
  (VB.Net code)
  Private Sub btnRequest_Click _
  (ByVal sender As System.Object, _
  ByVal e As System.EventArgs) _
  Handles btnRequest.Click
  
  Dim iOrderID As Int32
  Dim returnValue As Int16 = 0
  Dim j As Int16
  Dim proxy As New localhost.MyWebService()
  Dim results As New Object()
  Dim result As System.Xml.XmlElement
  
  iOrderID = Convert.ToInt32(txtOrderID.Text)
  
  results = proxy.CustOrdersDetail _
  (iOrderID, returnValue)
  result = results(j)
  
  txtResponse.Text = result.OuterXml.ToString()
  
  End Sub
  
    调用Web 服务的CustOrdersDetail 方法执行同名的存储过程。 这个方法返回一个对象数组,那些物体本身可能是XmlElement 或者SqlMessage 类型。 这些类型在你的Web 服务相关的WSDL 文件里定义的。 XmlElement 类型的对象包括从执行存储过程,用户定义的函数或SQLXML服务器上模版的返回的结果。 SqlMessage 对象包括从SQLXML 服务器返回的任何错误信息。 你可以像下面所列的代码一样在对像数组中引用XmlElement类型:
  
  (C# code)
  
  result = (System.Xml.XmlElement) results[j];
  txtResponse.Text = result.OuterXml.ToString();
  (VB.net code)
  result = results(j)
  txtResponse.Text = result.OuterXml.ToString()
  
    这段代码检索对象数组中的基础元素并且把它强制转换成XmlElement 对象类型。 然后,它展示了设置在Web表单上的XML结果,是通过把txtResponse控件上Text属性设置为 XmlElement对象的OuterXml属性的值。执行样本代码的时候,在txtOrderID文本框中输入参数10250(Northwind数据库内OrderID键对应的值。)。 . 当你点击按钮时,返回的XmlElement中就包含了下面的XML 数据:
  
  <SqlXml>
  <row ProductName="Jack's New England Clam Chowder"
  UnitPrice="7.7"
  Quantity="10" Discount="0"
  ExtendedPrice="77" />
  <row ProductName="Manjimup Dried Apples"
  UnitPrice="42.4" Quantity="35" Discount="15"
  ExtendedPrice="1261.4" />
  <row
  ProductName="Louisiana Fiery Hot Pepper Sauce"
  UnitPrice="16.8" Quantity="15" Discount="15"
  ExtendedPrice="214.2" />
  </SqlXml>
  
    注意在父标签<SqlXML>下的<row>元素包含属性ProductName, UnitPrice,Quantity, Discount和ExtendedPrice,与CustOrdersDetail存储过程的选定的和计算的字段之间对应。如果在使用命令行执行方式CustOrdersDetail ' 10250 ' 在SQL 查询分析器应用程序中测试程序,你将看见那个那些数据 ,这些数据在XmlElement 里包含的数据所对应的结果集里。SQLXML 也能执行模板,让你使用XPath 查询来从一个基本的XML 结果集中检索数据。模板支持能够非常在开发一个有用的应用程序时提供很大的帮助,但是它不能提供有效提升XML 数据所需要的所有的灵活性。
  
    SQLXML:简单但是有限
  
    SQLXML 和完整的VS.net Web 服务相比还是很有限的。例如,产生SQLXML的Web 服务不能应用一个XSLT样式表到XML数据或编程处理数据来直接输出HTML到你的客户端应用程序中。本质上,SQLXML方法要求你把你的事务层和数据层联系起来,以便有效的从你的客户端应用程序中封装程序逻辑。返回的数据结果可能是很难维护的并且不是非常容易移植到新的工具或者平台上。
  
    不过,就像样本应用程序那样,你只需要遵循构造程序步骤大略的描述,写不到20行的代码行, 你就能调用Web 服务来返回XML 数据到你的客户端应用程序。 SQLXML是一个理想的解决方案,用来创建浏览在线的目录信息,销货定单历史,或者任何可以利用来检索远程原始XML数据的工具。 这项技术将被证明是适合于那些主要事务为集中数据检索和操作的应用程序,而不是用于扩展业务应用程序规则和逻辑。因为返回的数据已经是XML 形式,所以你能使用XSLT排序,格式化提高你的数据的产量。
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
上一篇文章:ASP.NET移植须知(1)
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .