以前一直在做C/S架构的程序,现在想学习下这方面知识,不知道从哪下手。能否以下边这个给举个例子,感激不尽:调用http://www.hxmis.com/ws/smsservice.asmx里的readsmstest方法 会返回一些数据,把这些数据显示在DBgrid中。该如何实现?

解决方案 »

  1.   

    利用向导: new items -> webservice -> wsdl import
    把下面转为函数定义:
    http://www.w3.org/TR/wsdl
      

  2.   

    哦,应该是这url:
    http://www.hxmis.com/ws/smsservice.asmx?WSDL
      

  3.   

    谢谢哈,但是URL添加完了 应该怎么把这个取出的数据放入DBGrid中呢?这个函数返回的好像是XML格式的
      

  4.   

    看看xml数据能否给clientdateset加载,dbgrid关联clientdataset具体没这么用过,都是使用自己的MIS框架(INI@HTTP)
      

  5.   

    看看李维那本webservice的书吧,就是多层应用的那本
      

  6.   

    如楼上所说:看看李维的WebService就是 D6.SOAP_WEB.SERVICE.Programhttp://hi.baidu.com/mjp1234airen4385/blog/item/87ad76c6f615e6dbd10060f7.html
    http://hi.baidu.com/mjp1234airen4385/blog/item/d9bfeecd5def931701e928c5.html
      

  7.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;namespace WebService
    {
    /// <summary >
    /// Service1 的摘要说明。
    /// </summary >
    public class Service1 : System.Web.Services.WebService
    {
    public Service1()
    {
    //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
    InitializeComponent();
    }#region 组件设计器生成的代码//Web 服务设计器所必需的
    private IContainer components = null;/// <summary >
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary >
    private void InitializeComponent()
    {
    }/// <summary >
    /// 清理所有正在使用的资源。
    /// </summary >
    protected override void Dispose( bool disposing )
    {
    if(disposing && components != null)
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    }#endregion// WEB 服务示例
    // HelloWorld() 示例服务返回字符串 Hello World
    // 若要生成,请取消注释下列行,然后保存并生成项目
    // 若要测试此 Web 服务,请按 F5 键[WebMethod]
    public string HelloWorld()
    {
    return "Hello World ";
    }[WebMethod]
    public string add(int a, int b)
    {
    int i;
    i = a b;
    return i.ToString();
    }
    [WebMethod]
    public int add1(int a, int b)
    {
    int i;
    i = a b;
    return i;
    }
    }
    }导入wsdl................
    -- 
    var
    ss:Service1Soap;
    RIO : THTTPRIO;
    begin
    RIO:= THTTPRIO.Create( Owner );
    ss:=RIO as Service1Soap;
    RIO.WSDLLocation:= &apos;http://localhost/WebService/Service1.asmx?wsdl &apos;;
    showmessage( ss.add(1,2) );
    showmessage( IntToStr( ss.add1(1,2) ) );
    end;
    至于怎样将返回值显示到grid里面,就要看你的web方法返回的数据结构是怎样的,分析处理一下放到dataset里面然后绑定到dbgrid就可以了
      

  8.   

    使用TXMLTransformProvider控件,可实现XML转DataSet.Use TXMLTransformProvider to provide data from an XML document to a client dataset or XML broker and to resolve updates from that client dataset or XML broker back to the source XML document. TXMLTransformProvider can be a part of the same application as the client dataset or XML broker, or it can be placed in the application server of a multi-tiered application.  It serves as a translator between an XML document and a client dataset.