软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|开发客
您现在的位置: 天极网 > 开发频道 > XML无处不在——DB2 9给予你掌握它的力量
全文

XML无处不在——DB2 9给予你掌握它的力量

2007-12-22 19:24作者:维维编译出处:天极网软件频道责任编辑:方舟
  创建一个新的改进过的Web服务

  回到HeroData.cs文件。为了方便,将连接字符串从getNoXML()方法中取出,赋予一个类级别的私有变量,如:
private String connString = "…";

  自己手动填加List9中的代码,而非通过插件产生以下代码:

  Listing 9: getWithXML Webmethod

 [WebMethod()]
public virtual XmlDocument getWithXML(int heroID)
{
 DB2Connection conn = new DB2Connection();
 conn.ConnectionString = connString;
 conn.Open();
 DB2Command cmd = conn.CreateCommand();
 XmlDocument heroXml = new XmlDocument();
 String sel = @"select XMLELEMENT

 (NAME ""HERODATA"", XMLELEMENT (NAME ""HeroName"", HERONAME),
XMLELEMENT (NAME ""Notes"", NOTES))
 from NULLID.HEROES_XML where HEROID = " + heroID.ToString() + ";";
 cmd.CommandText = sel;
 XmlReader xr = cmd.ExecuteXmlReader();

 try
 {
  heroXml.Load(xr);
 }
 catch (DB2Exception ex)
 {
  throw ex;
 }
 finally
 {
  conn.Close();
 }
 return heroXml;
}

  在代码声明段,增加如下:

  using System.Xml;

  一些关于该方法的注解:
  1. 就像我提到的,你有一些荒谬的方法来获取数据。你注意到这个特别的技术因为它更加的短。它不包含任何DB2DataAdapter值,而是直接将值独到XmlReader值中。这将更容易的使用XmlDocument.Load()方法来转换为XmlDocument。
  2. 这里,返回类型是XmlDocument而不是XmlDataDocument,结果是一样的,你将在后面看到它们可以被JavaScript通过responseXML访问。
  3. 注意被选择的语句,你将看到新的命令:XMLELEMENT。它和其它的XML相关的SQL命令帮助你从SQL语句中格式化你的结果为XML。这里,你创建了一个HERODATA节点,然后使用“HeroName”和XML栏“Notes”来导出。这样的方式使得你可以混合数据类型,快速放回一个持久的高可访问的结果集。
  编译和测试HeroData.asmx。你触发你的新getWithXML方法时,将会看到“heroID”域,方法参数。如果你能够一次插入5行到HEROES_XML表中,它将自动的生成HeroID值从1到5。结果如图14所示。

db2



相关搜索:
关注此文读者还看过
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众