科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道XML无处不在——DB2 9给予你掌握它的力量

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

IBM最新的数据库,IBM DB2 9,引入了pureXML,一个解决使用XML进行工作的压力的本地XML特性集合。从新的XML数据类型到XQuery语言,DB2 9使得XML开发变得更加容易。

作者:Duane Merrill 来源:论坛整理 2007年12月24日

关键字: DB2

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共8页)

创建一个Web服务

  你有几个选项来创建一个基于DB2连接的Web服务。新的插件给你一些非常好的工具来加速开发。

   在VS中,创建一个到新数据库的连接。选择Tools->Connect to Database和IBM DB2,它作为安装VS 插件时的一个选项。如图8。

Connect to Database



   当增加新连接时,你可以看到如下选项:
  1. 选择或者键入服务器名:你可以在这里有一选项。
  2. 输入服务器上的信息:这可以是你在安装Express-C时指定的User ID和密码。
  3. 选择或者输入一个数据库名称:默认选择AJAXDEMO,如果你只是创建了唯一这个数据库,否则从下拉菜单中选择。
  你可以忽略其他选项和高级属性列表。选择“Test Connection”来保证你的User ID/Password选择框是正确的,并且可以连接到表。如图9.

Test Connection



   如果你展开新的连接和其中的一个表,你可以看到通过Visual Studio来成功的连接新的数据库,访问你的数据。右键点击Data Connections,你可以看到从IDE中,你能增加新的连接和创建新的IBM数据库。

   你可能在考虑,使得,你已经创建了数据库和表,输入数据,通过你的数据连接,使用DB2 9插件。现在你知道了。但是上下文菜单更加有趣。

   右键点击“HEROES_NOXML”。在诸多选项中,你可以看到两个和Web服务关联的项:“Deploy IBM Web Service”和“Generate Web Methods”(图10)。选择“Generate Web Methods”,在“Identify Database Enabled for Web Services”对话框,输入你创建数据库连接的下拉选项的服务器名,以及数据库名“AJAXDEMO”和你以前使用的用户名/密码。

db2



   在“IBM Web Service”向导中,输入“HeroData”作为Web服务名。剩下的域将会自动填写。当你创建服务的时候,DB2插件将会自动生成连接数据库的代码,并从指定的表中获取数值。你的代码有点类同List 1中的部分。注意使用IBM.Data.DB2命名空间代替System.Data.SQL。

using System;
using System.Data;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web;
using IBM.Data.DB2;
using System.Data.Common;

[WebService()]
[WebServiceBinding()]
public class HeroData
{
 [WebMethod()]
 public virtual DataSet select()
 {
  IBM.Data.DB2.DB2Connection db2Connection1 = new IBM.Data.DB2.DB2Connection();
  IBM.Data.DB2.DB2DataAdapter db2DataAdapter1 = new IBM.Data.DB2.DB2DataAdapter();
  IBM.Data.DB2.DB2Command db2SelectCommand1 = new IBM.Data.DB2.DB2Command();
  db2Connection1.ConnectionString = "database=AJAXDEMO;user
id=db2admin;server=DELL:db2c_DB2;password=changeme";
  db2DataAdapter1.SelectCommand = db2SelectCommand1;
  db2DataAdapter1.SelectCommand.CommandType = CommandType.Text;
  db2DataAdapter1.SelectCommand.CommandText =@"select * from NULLID.HEROES_NOXML";
  db2DataAdapter1.SelectCommand.Connection = db2Connection1;
  System.Data.DataSet ds = new System.Data.DataSet();
  try
  {
   db2DataAdapter1.Fill(ds);
  }
  catch (DB2Exception ex)
  {
   throw ex;
  }
  finally
  {
   db2Connection1.Close();
 }
 return ds;
}
}

  为了测试Web服务,编译和运行HeroData.asmx,点击“select”和“Invoke”。你可以看到一些类似图3的代码。

  在Visual Studio中,经过粗略估计你大概有2079种不同的方式来连接你的数据。插件将会返回一个DataSet,如List1中所示。一般来说这就够了,特别是使用非XML数据类型。

  但是当你看这个例子的时候,你有很多Ajax程序不需要的描述信息。这个特殊结果集在你用于DOM前需要一些JavaScript解析。为了便于使用,它最好是返回一个XmlDataDocument而不是一个DataSet。所以需要改变一些WebMethod代码:
  1. 改变方法名为“GetNoXML()”。改变名称将会出发一个工具提示下拉框允许你改变全局的名称,你应该抓住这个机会。
  2. 在方法声明中,将“public virtual DataSet getNoXML()”中的“DataSet”为“XmlDataDocument”。
  3. 在方法最后,将“return ds;”删除或者注释掉,加上如下代码:
XmlDataDocument xd = new XmlDataDocument(ds);
return xd;

   这就是转变你的DataSet到XML数据的简单方法。编译,测试,结果将如图11所示——更加简短,更加易于Ajax使用。

DataSet到XML

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章